0

私はここでほとんどの質問を調査しましたが、実行可能な解決策は見つかりませんでした。

インターネット接続を多用するアプリを設計しています。Webサービスから情報を要求/受信する必要があります。

私はインターネットを使用するすべてのコードをサラウンドしてみました

    try
    {
       //use of internet here
    }
   catch (Exception e)
   {
          //Alert dialog that states internet connection is down
   }

しかし、これはうまくいかないようです。何らかの理由で、ここでは例外がキャッチされません。

私は回避策、ここで見つけた解決策を試しました。の使用:

 public static boolean isOnline(Context context) {
    ConnectivityManager cm =(ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo netInfo = cm.getActiveNetworkInfo();
    if (netInfo != null && netInfo.isConnectedOrConnecting()) {
        return true;
    }
    return false;
}

そしてそれを次のように使用します:

        if (Utilities.IsOnline(context))
         {
          //Code that uses internet
         }

IsOnlineチェックの直後に接続が失われた場合はどうなりますか?このケースをどのように処理できますか?ありがとうございました!

4

1 に答える 1

1

チェック後にインターネットがダウンしたかどうかをチェックする唯一の方法は、ネットワーク接続の変更をリッスンするisOnlineを登録することです。この回答BroadcastReceiverには、その完全なコード例があります。

まだこれを行っていない場合は、コードをAsyncTask実行して、独自のループ(または一連のステートメント)を実行し、ループ/反復/計算ごとに接続ステータスを確認し、切断されている場合は停止できるようにすることをお勧めします。

于 2012-09-17T21:14:14.683 に答える