Android 如何在Webview中检测连接何时丢失/中断?

Android 如何在Webview中检测连接何时丢失/中断?,android,webview,Android,Webview,我正在实现一个Webview,希望在连接断开或网络中断时进行检测…(例如:当设备超出网络范围时) 并且能够在重新建立连接时重新连接 如有任何意见,将不胜感激。谢谢。这看起来像一个复制品。但相关代码块如下所示。这是一种捕获错误并相应更改UI的方法 webView.setWebViewClient(new WebViewClient() { @Override public void onReceivedError(final WebView view

我正在实现一个Webview,希望在连接断开或网络中断时进行检测…(例如:当设备超出网络范围时)

并且能够在重新建立连接时重新连接


如有任何意见,将不胜感激。谢谢。

这看起来像一个复制品。但相关代码块如下所示。这是一种捕获错误并相应更改UI的方法

       webView.setWebViewClient(new WebViewClient() {

        @Override
        public void onReceivedError(final WebView view, int errorCode, String description,
                final String failingUrl) {
            //control you layout, show something like a retry button, and 
            //call view.loadUrl(failingUrl) to reload.
            super.onReceivedError(view, errorCode, description, failingUrl);
        }
    });
您还可以使用广播接收器在整个应用程序中监听网络连接丢失。你可以找到一篇好文章。但要点是你为网络变更注册了一个接收者,然后你检查变更是否为断开连接。然后,您可以使用自己的事件总线发送广播,以更新UI

public class NetworkChangeReceiver extends BroadcastReceiver {

@Override
public void onReceive(final Context context, final Intent intent) {
    final ConnectivityManager connMgr = (ConnectivityManager) context
            .getSystemService(Context.CONNECTIVITY_SERVICE);

    final android.net.NetworkInfo wifi = connMgr
            .getNetworkInfo(ConnectivityManager.TYPE_WIFI);

    final android.net.NetworkInfo mobile = connMgr
            .getNetworkInfo(ConnectivityManager.TYPE_MOBILE);

    if (wifi.isAvailable() || mobile.isAvailable()) {
        // Do something

        Log.d("Network Available ", "Flag No 1");
    }
  }
} 
支票在这里:

public boolean isOnline(Context context) {

    ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo netInfo = cm.getActiveNetworkInfo();
    //should check null because in air plan mode it will be null
    return (netInfo != null && netInfo.isConnected());
}

重新建立连接时,如何重新连接?