1

我想在該應用程序上放置一個按鈕,以清除我的Android應用程序的緩存。任何人都知道這是可能的嗎?**編輯**如何在我的Android應用程序中設置緩存清除按鈕

編輯: 這是我MainActivity代碼,我在我的應用程序中使用。

package nl.giuliandenicola.giuliansportfolio; 

import android.net.ConnectivityManager; 
import android.net.NetworkInfo; 
import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
import android.webkit.WebSettings; 
import android.webkit.WebView; 



public class MainActivity extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     WebView webView=(WebView) this.findViewById(R.id.webView); 

     webView.getSettings().setAppCacheMaxSize(5 * 1024 * 1024); // 5MB 
     webView.getSettings().setAppCachePath(getApplicationContext().getCacheDir().getAbsolutePath()); 
     webView.getSettings().setAllowFileAccess(true); 
     webView.getSettings().setAppCacheEnabled(true); 
     webView.getSettings().setJavaScriptEnabled(true); 
     webView.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT); // load online by default 

     if (!isNetworkAvailable()) { // loading offline 
      webView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK); 
     } 

     webView.loadUrl("http://google.com"); 
    } 

    private boolean isNetworkAvailable() { 
     ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE); 
     NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo(); 
     return activeNetworkInfo != null && activeNetworkInfo.isConnected(); 
    } 
} 

回答

1

如果你想刪除自己的應用程序的緩存然後只需在您的清單文件中刪除緩存目錄

public static void deleteCache(Context context) { 
    try { 
     File dir = context.getCacheDir(); 
     deleteDir(dir); 
    } catch (Exception e) {} 
} 

public static boolean deleteDir(File dir) { 
    if (dir != null && dir.isDirectory()) { 
     String[] children = dir.list(); 
     for (int i = 0; i < children.length; i++) { 
      boolean success = deleteDir(new File(dir, children[i])); 
      if (!success) { 
       return false; 
      } 
     } 
     return dir.delete(); 
    } 
    else if(dir!= null && dir.isFile()) 
     return dir.delete(); 
    else { 
     return false; 
    } 
} 

以刪除其他應用

<uses-permission android:name="android.permission.CLEAR_APP_CACHE"/> 

檢查緩存回答更多詳細信息https://stackoverflow.com/a/9073473/2826147

+0

而我將如何使它能夠工作w ith「OnClick」功能? –

+0

在您的** OnClick **函數參數中調用此方法。 –

+0

等待這段代碼,我需要把它放在MainActivity的權利? (我剛剛開始使用android studio。 –

相關問題