2016-04-29 18 views
2

私のアンドロイドアプリケーションでキャッシュが存在するかどうかを検出する必要があります。現在、インターネットが利用可能な場合、私はウェブページをロードしています。次のコードを使用して、インターネットからキャッシュからページを読み込むことができない場合。アンドロイドのwebviewにキャッシュを検出する方法はありますか?

if (networkInfo.isConnected()) { 
      webView.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT); // load online by default 
     } else { 
      // loading offline 
      webView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK); 
     } 

上記のコードでは、インターネット用の条件を1つ追加する必要があり、キャッシュも使用できないため、ユーザーにメッセージを表示する必要があります。したがって、キャッシュを特定する計画はwebviewで利用可能です。しかし、キャッシュを決定する方法を見つけることができないかどうかは確かです。

次のアイデアはありますが、私の目標を達成する方法はありません。 1.メソッドのようにisCacheAvailableを返すように、weviewまたはwebviewsettingsのメソッドを見つけます。それを見つけられませんでした。 2. Webviewキャッシュファイルの正確なパスを確認します。だから、私はファイルのサイズをチェックして、利用可能なキャッシュを判断することができます。しかし、webviewのキャッシュディレクトリの正確なパスを取得する方法を見つけることができませんでした。

webviewキャッシュが存在するかどうかを確認する方法を知る手助けをしてください。

+0

私はまったく同じ問題を抱えています... –

答えて

1

WebViewのキャッシュのパスはそう方法が

private boolean isCacheAvailable(){ 
    File dir = getApplicationContext().getCacheDir(); 
    if (dir.exists()) 
     return dir.listFiles().length > 0; 
    else 
     return false; 
}; 
0

WebViewのキャッシュは/data/data/[your_package_name]/cache/org.chromium.android_webviewフォルダに保存されることができるgetApplicationContext().getCacheDir()

あります。

関連する問題