Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

WebView's LOAD_NO_CACHE setting still saves files to the disk?

Despite using webview.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);, the WebView is still saving MB's worth of files into the cache. Is there a way to truly disable the cache?

Thanks

like image 547
cottonBallPaws Avatar asked Mar 09 '11 00:03

cottonBallPaws


1 Answers

Nothing seems to be promising to disable cache completely.

It would be better to just ignore the cache and force webView to load new or fresh page each time.

if someone is worrying about occupied cache size, one can limit the cache size. There are plenty of methods to do so, have a look at my similar answer. Hope, the answer will give some hint about it.

But two things look promising to me for disabling the cache,

1) Make use of header parameters when you are loading a page,

Note : available for 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) If you have html page which you are going to load into the webView, you can add the following meta tags into the HTML page.

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

Hope this will help you.

like image 71
Moin Ahmed Avatar answered Sep 28 '22 15:09

Moin Ahmed