Clear Android Cache

1571 ワード

Context context = getBaseContext();
WebView webview = new WebView(context);

deleteCacheDir(this);
clearApplicationCache(null);

CookieManager.getInstance().removeAllCookie();

String[] fileList = this.fileList();
    for(String file: fileList) { 
    this.deleteFile(file);
}
WebViewDatabase.getInstance(this).clearUsernamePassword();
WebViewDatabase.getInstance(this).clearHttpAuthUsernamePassword();

webview.clearSslPreferences();
webview.clearView();

webview.clearFormData();
webview.clearHistory();
webview.clearCache(true);
webview.clearMatches();

context.deleteDatabase("/data/data/android.Packege/databaseswebview.db"
context.deleteDatabase("/data/data/android.Packege/databases/webviewCache.db");

webview.freeMemory();

android.os.Process.killProcess(android.os.Process.myPid());
return true;
}
return true;
}
private void clearApplicationCache(java.io.File dir){
if(dir==null)
    dir = getCacheDir();
else;
    if(dir==null)
    return;
else;
    java.io.File[] children = dir.listFiles();
    try{
        for(int i=0;i<children.length;i++)
        if(children[i].isDirectory())
        clearApplicationCache(children[i]);
        else children[i].delete();
    }
    catch(Exception e){}
}
void deleteCacheDir(Context context) {
    Runtime localRuntime = Runtime.getRuntime();

    String cachePath = context.getCacheDir().getPath();
    String cmd = "rm -R " + cachePath;
    try {
        localRuntime.exec(cmd);
    } catch (IOException e) {
        e.printStackTrace();
        }
    }