我在我的應用程序中使用webview加載遠程網頁,然後通過xhr-pooling使用socket.io
(node.js)。Android Webview - 無法禁用緩存
問題是我無法通過socket.io
禁用緩存接收的數據。 例如,每10秒我的節點服務器執行io.emit
,而我的WebView接收它,並將其保存在:
/data/data/...../webviewCache
我不希望我的WebView什麼保存,因爲隨着時間的推移,這些文件的數量剛剛升起,他們都沒有幫助我的應用程序運行速度更快...
我已經試過:
browser.getSettings().setCacheMode(2); //(2 is LOAD_NO_CACHE)
browser.getSettings().setAppCacheEnabled(false);
但這些作品都沒有。我的webview仍然將文件保存到緩存文件夾。
在這一刻,我已經設置了定時被排空每60秒的緩存文件夾,但是這不是解決方案,我想在生產中釋放......
我缺少的東西在這裏或那裏的臭蟲以在android中禁用緩存?
UPDATE 1:經過整天的調試,我發現了一些有趣的東西。 logcat中顯示了兩個有趣的事情:saveCacheFile和getCacheFile
於是我決定再次嘗試關閉緩存...
browser.getSettings().setCacheMode(android.webkit.WebSettings.LOAD_NO_CACHE);
這實際上造成的WebView中並沒有加載文件從緩存了,但它仍然保存它們。登錄貓說,這樣的事情:
saveCacheFile for url .../socket.io/1/xhr-polling/BLNN28E7S4PZJsy2pWaF?t=13537
所以我相信實際的問題是,如何防止網頁視圖從節省每一個請求緩存文件。
這不是從緩存中檢索數據的問題,問題在於Android一直在保存文件和不必要的使用空間。 – Igor