2

To clear cache of WebView, I have used

   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();

But nothing is clearing cache. Any suggestion??

Phantômaxx
  • 37,901
  • 21
  • 84
  • 115
eager
  • 597
  • 8
  • 18
  • Can you elaborate? How do you know cache is not cleared? Because - I use Webview a lot. It automatically caches pictures and css. But as soon as do webview.clearCache(true) - it clears everything impeccably. Same is about LOAD_NO_CACHE. – Eugene Kartoyev Jul 04 '18 at 07:25

2 Answers2

3

I have been trying to figure out the way to clear the cache, but all we could do from the above mentioned methods was remove the local files, but it never clean the RAM.

The API clearCache, frees up the RAM used by the webview and hence mandates that the webpage be loaded again.

public void clearCache (boolean includeDiskFiles)

includeDiskFiles boolean: if false, only the RAM cache is cleared

Clears the resource cache.

Note that the cache is per-application, so this will clear the cache for all WebViews used.

Suggested: To clear all the webview caches while you signOUT form your APP:

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

For Lollipop and above:

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

To clear all the webview caches while you signOUT form your APP:

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

For Lollipop and above:

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

To clear the history, simply do:

this.WebView.clearHistory();
hrk singh
  • 143
  • 12