【问题标题】:Webview is not clearing the cacheWebview 没有清除缓存
【发布时间】:2018-12-12 13:16:46
【问题描述】:

为了清除WebView的缓存,我使用了

   webview.getSettings().setAppCacheEnabled(false);
   webview.clearCache(true); 
   webview.loadUrl("about:blank");
   webview.reload()

             or 

   deleteDatabase("webview.db");
   deleteDatabase("webviewCache.db");

             or
   webview.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
   webview.clearCache(true);
   webview.clearHistory();

但没有什么是清除缓存。有什么建议吗??

【问题讨论】:

  • 您能详细说明一下吗?你怎么知道缓存没有被清除?因为 - 我经常使用 Webview。它会自动缓存图片和css。但是只要 webview.clearCache(true) 做,它就会完美地清除一切。 LOAD_NO_CACHE 也是如此。

标签: android webview clear-cache


【解决方案1】:

我一直在想办法清除缓存,但我们可以从上述方法中做的就是删除本地文件,但它永远不会清除 RAM。

API clearCache 释放了 webview 使用的 RAM,因此要求重新加载网页。

public void clearCache (boolean includeDiskFiles)

includeDiskFiles 布尔值:如果为 false,则仅清除 RAM 缓存

清除资源缓存。

请注意,缓存是针对每个应用程序的,因此这将清除所有使用的 WebView 的缓存。

建议: 要在您从 APP 注销时清除所有 webview 缓存:

CookieSyncManager.createInstance(this);         
CookieManager cookieManager = CookieManager.getInstance();        
cookieManager.removeAllCookie();

棒棒糖及以上:

CookieSyncManager.createInstance(this);         
CookieManager cookieManager = CookieManager.getInstance();        
cookieManager.removeAllCookies(ValueCallback);

【讨论】:

    【解决方案2】:

    在您从 APP 注销时清除所有 webview 缓存:

    CookieSyncManager.createInstance(this);         
    CookieManager cookieManager = CookieManager.getInstance();        
    cookieManager.removeAllCookie();
    

    棒棒糖及以上:

    CookieSyncManager.createInstance(this);         
    CookieManager cookieManager = CookieManager.getInstance();        
    cookieManager.removeAllCookies(ValueCallback);
    

    要清除历史记录,只需执行以下操作:

    this.WebView.clearHistory();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-28
      • 2016-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-07
      相关资源
      最近更新 更多