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。 –

相关问题