2011-03-09 225 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"> 

希望這會對你有幫助。