我在我的应用程序中使用 webview,它正在加载远程网页,然后socket.io
通过 xhr-pooling 使用(node.js)。
问题是我无法通过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中禁用缓存存在错误?
更新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
所以我相信实际的问题是,如何防止 webview在每个请求上保存缓存文件。