0

ネットワーク接続を監視する BroadcastReceiver があり、インターネット接続が利用可能になったときに Web ビューをリロードしようとしています。

ただし、getActiveNetworkInfo().isConnect() が true を返し、URL をリロードすると、Web ビューは次のように言って失敗します。

web view error:(-6) The connection to the server was unsuccessful.

接続が実行可能かどうかを判断する方法は次のとおりです。

public static boolean isConnectedToInternet()
{
    ConnectivityManager cm = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);

    NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
    boolean isConnected = false;

    if(activeNetwork != null &&
            activeNetwork.isConnected())
    {
        isConnected = true;
    }

    return isConnected;
}

助けてくれてありがとう

4

2 に答える 2

0

例外として動作しない理由はわかりませんが、次の適切な回避策が見つかりました。

public void onReceivedError (WebView view, int errorCode, String description, String failingUrl)
{
    super.onReceivedError(view, errorCode, description, failingUrl);
    Log.e("web view error: "+errorCode, description);

    if(errorCode == -6 && 
               isConnectedToInternet())
    {
        view.reload();
    }
    else
    {
        view.loadUrl("");
    }
}

これが他の誰かを助けることを願っています

于 2013-04-26T22:09:54.027 に答える