« android WebView loadData | メイン | Android ローカライズ方法 »

Android ブラウザキャッシュ

先日公開した、RSSReaderでは、記事を表示するのに、テキストのみ表示のTextViewと、リンクされている画像も表示できる、WebViewの2種類を用意し設定で切り替え可能にしている。

WebViewの使用は、作り手としては、非常に便利ではあるが、いちいちネットワークアクセスにいくため、速度が遅い事、無用なパケットが発生するので2種類用意をした。

記事からリンクされている画像は、WebViewにより自動的に取得されるため、ローカルデータベースには格納しておらず、テキストのみを保存している。このためアプリケーションが持つデータサイズは、そんなに大きくならないはずだが、Home -> Setting からアプリケーション情報を見ると7Mにもなっていた。理由はWebViewが持つキャッシュ、このキャッシュは、ブラウザアプリケーションとは共有されず、各アプリケーションのディレクトリに作成される。
従って、なんらかの方法でキャッシュをクリアする必要がある。


jp.co.taosoftware.android.rssreader/cache
キャッシュの実体

jp.co.taosoftware.android.rssreader/databases
webview.db
webviewCache.db

webview.dbは、formdata httpauth coolies formurl password 等のテーブルを含む webViewCache.dbは、ページキャッシュ用DBでその実態は、cacheディレクトリに存在する。

キャッシュのクリアは、以下のコードで行う


			Context context = getContext();
			WebView view = new WebView(context);
			view.clearCache(true);
			view.clearFormData();
			view.clearHistory();
			
			CookieManager.getInstance().removeAllCookie();

ブログ内の関連する記事

トラックバック

このエントリーのトラックバックURL:
http://www.taosoftware.co.jp/mt/mt-tb.cgi/119

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)