有一天,我的客户说“Webview缓存似乎堆叠数据区域,而不是缓存区域。我的设备是Optimus G 4.4.2 Kitkat”。
缓存是否真的累积在数据区域中,我检查了我的4.4.2设备。
所以,缓存真正积累了数据区。
并且,它不会删除以下方式。
protected void trimCache(Context context) {
try {
dir = context.getCacheDir();
if (dir != null && dir.isDirectory()) {
deleteDir(dir);
}
} catch (Exception e) {
e.printStackTrace();
}
}
protected boolean deleteDir(File dir) {
if (dir != null && dir.isDirectory()) {
children = dir.list();
for (String aChildren : children) {
if (deleteDir(new File(dir, aChildren))) continue;
return false;
}
}
assert dir != null;
return dir.delete();
}
and, Webview.clearCache() and Context.deleteDatabase("") .
我有两个问题。
P.S。我不是母语,所以我的英语还不够。
答案 0 :(得分:0)
我用它来清除数据缓存。
try {
File cache = getCacheDir();
File appDir = new File(cache.getParent());
if (appDir.exists()) {
String[] children = appDir.list();
for (String s : children) {
if (!s.equals("databases") &&!s.equals("lib") && !s.equals("shared_prefs")) {
deleteDir(new File(appDir, s));
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
答案 1 :(得分:0)
How can i delete cache in the data area?
您可以查看此link以获取有关如何删除缓存数据的更多信息。有一个递归方法,那家伙正在使用。
if i can't delete cache in the data area, How i can turn off android webview cache.
您可以尝试使用
mWebView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
mWebView.getSettings().setAppCacheEnabled(false);
但更重要的是,在创建webview之后,在加载任何页面之前,您可以清除缓存,如documentation中所述。
mWebView.clearCache(true)