2016-04-29 46 views
2

在我的android应用程序中需要检测缓存是否存在。目前我正在加载网页,如果互联网可用。如果Internet不可用,请使用以下代码加载缓存中的页面。如何检测高速缓存存在于android中的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); 
     } 

在上面的代码我需要添加一个条件互联网不可用和缓存也不可用,我需要显示的信息给用户。因此计划识别任何缓存可用于webview。但无法找到确定缓存的方式是否可用。

有以下想法,但不知道如何实现我的目标。 1.找出weview或webviewsettings的方法来返回isCacheAvailable类似的方法。没有找到它。 2.找出webview缓存文件的确切路径。以便我可以检查文件大小以确定是否可用缓存。但没有找到确切的路径为webview缓存目录。

请帮我找出一种方法来确定webview缓存是否存在。

+0

我也有完全相同的问题... –

回答

1

为网页视图缓存的路径是getApplicationContext().getCacheDir()

因此该方法可以是

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

web视图缓存被保存到文件夹/data/data/[your_package_name]/cache/org.chromium.android_webview。