尽管使用了
webview.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
,WebView仍会把几MB的文件保存到缓存中。是否有一种方法可以真正禁用缓存?谢谢。webview.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
,WebView仍会把几MB的文件保存到缓存中。是否有一种方法可以真正禁用缓存?谢谢。目前似乎没有完全禁用缓存的可靠方法。
最好的办法是忽略缓存,每次强制webView加载新页面或刷新页面。
如果有人担心占用缓存大小,可以限制缓存大小。有很多方法可以做到这一点,请查看我的相似答案。希望这个答案会给出一些提示。
但有两件事对我来说看起来很有前途,
1)在加载页面时利用头部参数,
注意:适用于Android API 8+。
Map<String, String> noCacheHeaders = new HashMap<String, String>(2);
noCacheHeaders.put("Pragma", "no-cache");
noCacheHeaders.put("Cache-Control", "no-cache");
view.loadUrl(url, noCacheHeaders);
2) 如果你有一个将要加载到webView中的html页面,你可以在HTML页面中添加以下meta标签。
<META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE">
<META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE">
尝试在WebSettings中使用setAppCacheEnabled(false)
。