【问题标题】:Force close in WebView- not working when it's in offline在 WebView 中强制关闭 - 离线时不起作用
【发布时间】:2013-01-02 04:23:49
【问题描述】:

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

编码如下:

    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" />

【问题讨论】:

  • 你的日志猫说什么?
  • logcat 显示,"no such table:Deleted CacheResources"

标签: android android-layout android-intent android-widget android-webview


【解决方案1】:

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

你需要像这样检查网络

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

看到这个Link

【讨论】:

    猜你喜欢
    • 2019-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多