読者です 読者をやめる 読者になる 読者になる

Androidはワンツーパンチ 三歩進んで二歩下がる

Android卵プログラマーの記録ブログ

アプリケーションのキャッシュを削除すると、WebViewで表示した時にCSSが効かなくなるという現象について

Android

あまりちゃんとわかっていないのだけど忘れないようにメモをしておきます。

WebViewを使ったアプリを作成しているのですが、そのアプリのキャッシュを
消去すると、WebのCSSを読み込まなくなってデザインの無いWebページが表示されてしまう
という現象がありました。
アプリのキャッシュを消去するというのはプログラム内からではなく、
設定→アプリケーション管理→アプリ選択→キャッシュを消去ボタン押す
という流れで行います。

どうやら端末やAndroidのバージョンと関係があるらしく、
私の端末(Galaxy S3 Android4.0.2)では発生しませんでしたが、Galaxy S2 Android4.0,
xoom Android4.0 では発生したようです。
Android2.3の端末では発生しなかったそうです。
キャッシュを消去した後でもCSSをキャッシュから取ろうとしている?からなのでしょうかね。
Htmlはデザイン無しですが、表示されるのでWebを見に行っているようなんですが。

ひとまずの対応ですが、以下のようにした所この現象は発生しなくなったようです。
でも、表示が遅くなっちゃうかな〜(;´Д`)
何かご存知の方がいらしたら教えて下さると嬉しいです。

WebViewの表示終了時にキャッシュをクリアする。

    @Override
    public void onDestroy() {
        if (mWebView != null) {
            mWebView.stopLoading();
            mWebView.clearCache(true);  // ← ここでキャッシュをクリアする
            mWebView.setWebChromeClient(null);
            mWebView.setWebViewClient(null);
            mWebView.destroy();
            mWebView = null;
        }
        super.onDestroy();
    }