android - WebView 的 LOAD_NO_CACHE 设置仍然保存文件到磁盘?

标签 android caching webview

尽管使用 webview.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);,WebView 仍在将 MB 的文件保存到缓存中。有没有办法真正禁用缓存?

谢谢

最佳答案

似乎没有什么可以完全禁用缓存。

最好忽略缓存并强制 webView 每次加载新页面。

如果有人担心占用的缓存大小,可以限制缓存大小。有很多方法可以做到这一点,看看我的 similar answer .希望,答案会给出一些提示。

但是我认为禁用缓存有两件事很有前途,

1) 在加载页面时使用 header 参数,

注意:适用于 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) 如果您有要加载到 webView 中的 html 页面, 您可以将以下元标记添加到 HTML 页面中。

<META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE">
<META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE"> 

希望对您有所帮助。

关于android - WebView 的 LOAD_NO_CACHE 设置仍然保存文件到磁盘?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5239954/

相关文章:

.net - 如何在Linq to SQL中实现缓存?

java - WebView 无法从 wordpress 网站下载媒体(POST)

c# - 如何在 Windows UWP 中的同一个 WebView(不是新窗口)中打开弹出窗口?

Android WebView navigator.getCurrentPosition 问题

android - 刷新 Activity

java - Android蓝牙发送文件问题

http - Kemal 使用处理程序中间件缓存响应

caching - dotPeek 在哪里存储它的缓存?

android - 如何将外部依赖项添加到 bazel

android - 在 Android 上播放 mp3?