Android ブラウザキャッシュ

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

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

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

jp.co.taosoftware.android.rssreader/cacheキャッシュの実体jp.co.taosoftware.android.rssreader/databaseswebview.dbwebviewCache.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();

ブログ内の関連する記事


コメント

このブログの人気の投稿

島へ移住の話【炊飯】

ドローンプログラミング体験教室を伊豆大島の小学校でしてきました

情報処理安全確保支援士登録証のカード型が届きました。