2012-01-18 5 views
9

私はアプリケーションキャッシュを使ってwebviewを持っています。私は、ページをロード/キャッシュするために、ネットワークに接続してアプリケーションを起動しました。今、無線LAN(3g - ネットワーク接続なし)をオフにしてアプリを起動すると、「アンドロイドはページを読み込めませんでした」というページが表示されます。奇妙なことに、私がwebviewをリロードすると、キャッシュからページがロードされます。ネットワークに接続できない場合、キャッシュからこのページをロードできないのはなぜですか?なぜアンドロイドWebviewはデフォルトでキャッシュをチェックしないのですか?

私はcache.manifestでHTML5アプリケーションキャッシュを使用しています。ここに私のWebViewコードは、これを有効にするためです:

webview.getSettings().setDomStorageEnabled(true); 
webview.getSettings().setAppCacheMaxSize(1024*1024*8); 
webview.getSettings().setAppCachePath("/data/data/com.my.package/cache"); 
webview.getSettings().setAllowFileAccess(true); 
webview.getSettings().setAppCacheEnabled(true); 

私が追加しようとした:

weview.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK); 

それは助けにはなりませんでした。

+0

Wi-Fiや3gの電源を切ると、アクティブにチェックしていない限りアプリケーションのインスタンスが強制終了されます。ネットワークから既にロードされているためキャッシュから読み込むことがわかりませんウェブビューが正しく読み込まれます。 –

+0

@JaredBurrows私はあなたが何を意味しているのか理解できませんが、流れはこれです:1.ネットワークからアプリケーションを読み込みます。 1a。ページがキャッシュされます。 2.アプリを終了します。 3.無線LANを抹消します(デバイスで3gなし)。4.アプリケーションをロードします。 4a。ページに「Androidがページを読み込めませんでした」と表示されます。5. Webビューを更新します。 5a。キャッシュからページが正しく読み込まれます – xdumaine

+0

どのようにWebビューをリフレッシュしていますか? –

答えて

0

リクエストしているURLがリダイレクトではないかどうかを確認してください。そうであれば、キャッシュはそのリダイレクトも指しており、WebViewはキャッシュから結果のリダイレクトを読み取ることはありません。

これは私の場合に起こったことであることを理解するまでには時間がかかりました。

関連する問題