1

我想在线显示网站。当它处于离线模式时,它应该显示缓存的网站。我创建的,但是当它在线时它正在工作。但是当它处于离线模式时,它会导致强制关闭。我不知道我在哪里出错。请帮助我。

编码如下:

    w=(WebView)findViewById(R.id.webView1);
    enableHTML5AppCache();
}

private void enableHTML5AppCache() {    
      w.getSettings().setAppCacheMaxSize(1024*1024*8);
      w.getSettings().setAppCachePath("/data/data/"+ getPackageName() +"/cache");
      w.getSettings().setAllowFileAccess(true);
      w.getSettings().setAppCacheEnabled(true);
      w.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT);
      cm = (ConnectivityManager)this.getSystemService(Activity.CONNECTIVITY_SERVICE);

      if(cm.getActiveNetworkInfo().isConnected())
         {
                w.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT);
            w.setInitialScale(1);
                w.loadUrl("http://www.google.com/");
         }
      else
         {
              w.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
              w.loadUrl("http://www.google.com/");
         }
}

在清单文件中,我也使用了权限

<uses-permission android:name="android.permission.INTERNET"/>

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
4

1 回答 1

0

cm.getActiveNetworkInfo()没有可用网络时可以等于 null

你需要像这样检查网络

if(cm.getActiveNetworkInfo() != null && cm.getActiveNetworkInfo().isConnected()) 

看到这个链接

于 2013-01-02T04:33:10.030 回答