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();
コメント
コメントを投稿