尽管使用webview.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
,web视图仍然保存MB的价值的文件到缓存中。有没有办法真正禁用缓存?的WebView LOAD_NO_CACHE设置还是将文件保存到磁盘?
感谢
尽管使用webview.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
,web视图仍然保存MB的价值的文件到缓存中。有没有办法真正禁用缓存?的WebView LOAD_NO_CACHE设置还是将文件保存到磁盘?
感谢
在WebSettings尝试setAppCacheEnabled(false)
。
这是对HTML5应用程序缓存功能,而不能用于缓存下载内容。 – mparaz 2012-06-12 06:43:59
一切似乎是有前途完全禁用缓存。
这将是更好的只是忽略缓存并强制webView的每次装入新的或新的一页。
如果有人担心占用的高速缓存的大小,可以限制高速缓存的大小。有很多方法来做到这一点,看看我的similar answer。希望,答案会给出一些暗示。
但是有两件事看好我禁用缓存,
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)如果您有您要加载到web视图的html页面, 您可以添加以下meta标签到HTML页面。
<META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE">
<META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE">
希望这会对你有帮助。
我觉得这个设置是页面的第二负载。我从api获取了setCacheMode的这个:缓存的使用方式基于导航选项。对于正常的页面加载,检查缓存并根据需要重新验证内容。在返回时,内容不会被重新验证,而是仅从缓存中提取内容。该功能允许客户覆盖此行为。 – 2011-08-25 09:08:15