Android 如何缓存URL并在脱机时加载?

Android 如何缓存URL并在脱机时加载?,android,android-webview,offline-caching,Android,Android Webview,Offline Caching,这是我的密码。由于我是安道尔的新手,我不知道该怎么办。这就是我尝试过的。我是否也需要一些方法来将缓存保存到存储中 public class Main2Activity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVie

这是我的密码。由于我是安道尔的新手,我不知道该怎么办。这就是我尝试过的。我是否也需要一些方法来将缓存保存到存储中


public class Main2Activity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);
        String url="https://www.facebook.com";

        WebView webView = (WebView) findViewById(R.id.webview_new);
        webView.setWebViewClient(new WebViewClient());

        if(!isNetworkAvailable()){
            webView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
        }
        webView.loadUrl(url);
    }



    private boolean isNetworkAvailable() {
        ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService( CONNECTIVITY_SERVICE );
        NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
        return activeNetworkInfo != null && activeNetworkInfo.isConnected();
    }
}

您可以在
isNetworkAvailable()
之前添加此
cache()
,以便脱机加载URL

private void cache() {
        webView.getSettings().setAppCachePath(getApplicationContext().getCacheDir().getAbsolutePath());
        webView.getSettings().setAppCacheEnabled(true);
        webView.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT); // load online by default
        if (!isNetworkAvailable()) { // loading offline
            webView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
        }
    }

看看这个,这可能会对你有所帮助,看看@Xantosh一些网站声明没有缓存,这意味着一些网页无法缓存。