2011-03-09 74 views
9

尽管使用webview.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);,web视图仍然保存MB的价值的文件到缓存中。有没有办法真正禁用缓存?的WebView LOAD_NO_CACHE设置还是将文件保存到磁盘?

感谢

+0

我觉得这个设置是页面的第二负载。我从api获取了setCacheMode的这个:缓存的使用方式基于导航选项。对于正常的页面加载,检查缓存并根据需要重新验证内容。在返回时,内容不会被重新验证,而是仅从缓存中提取内容。该功能允许客户覆盖此行为。 – 2011-08-25 09:08:15

回答

2

一切似乎是有前途完全禁用缓存。

这将是更好的只是忽略缓存并强制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"> 

希望这会对你有帮助。