2016-04-16 3 views
1

に基づいてアクションを実行するには、この放送受信機をコーディングする必要があります。は、どのように私はそれが利用可能だとそうでない場合は警告ダイアログを表示する場合はメソッドを呼び出して、インターネットをチェックし、私はインターネット接続をチェックしていますその

私が呼び出しているメソッドは、インターネットからデータを取得するためにvolleyを使用しているため、onResponseが呼び出される前に円のProgressDialogを与えました。 onResponseseで 、私は進行ダイアログを却下しました。今ここに

onResponseが呼び出されると、インターネット接続 がで行く、ProgressDialogが読み込みを停止しないときgetDataがに呼び出されたときの間で、問題となっています。言い換えれば、それはデータがフェッチされることは希望がない場合でも表示し続けます。

インターネット接続が行われているときにalertDialogBuilderと表示したかったので、まだ表示されているときにmProgressDialogを却下してください。

私は、これは放送受信機で行うことができると思っていたので、私は1つを作成し、活動にそれを登録したがそれは私の知る限り得ることができるようでした。ここで

は私のコードです:

NetworkCheck

public class NetworkCheck { 
//I use this class to check for internet connectivity. 

    public static boolean isAvailableAndConnected(Context context) { 
     ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); 
     boolean isNetworkAvailable = cm.getActiveNetworkInfo() != null; 
     boolean isNetWorkConnected = isNetworkAvailable && cm.getActiveNetworkInfo().isConnected(); 

     return isNetWorkConnected; 

    } 

} 

InternetReciever

public class InternetReciever extends BroadcastReceiver { 
    public InternetReciever() { 
    } 

    @Override 
    public void onReceive(Context context, Intent intent) { 
     // TODO: This method is called when the BroadcastReceiver is receiving 
     // an Intent broadcast. 
     throw new UnsupportedOperationException("Not yet implemented"); 
    } 
} 

MainActivity

また、私も考えています。が呼び出される前に、mProgressDialogを却下するときに、ボレーのリクエストをキャンセルしてはいけませんか?

答えて

1

をします呼び出される。ここにアラートを表示することができます。データへの呼び出しが失敗したことを示し、進行状況バーも閉じます。

Response.ErrorListenerが呼び出された後に理由がある:バレーが提供するその デフォルトのエラー処理。だから、私たちはより良い提供 デフォルトの機能:)

+0

感謝を使用します!これはそれを修正しました。私も放送受信機に – X09

+0

ようこそは必要ありません。ハッピーコーディング。 :) –

2

このお試しください:onResponseがボレー方法

new Response.ErrorListener() { 
       @Override 
       public void onErrorResponse(VolleyError error) { 

       if (mProgressDialog != null) { 
         mProgressDialog.hide(); 
        } 

       } 
      }); 

呼び出されたときに、あなたがたgetDataがに呼び出されたときの間でインターネットを持つことはありませんとして

public class NetworkChangeReceiver extends BroadcastReceiver { 
 

 
     @Override 
 
     public void onReceive(final Context context, final Intent intent) { 
 
      isNetworkAvailable(context); 
 

 
     } 
 

 
     private boolean isNetworkAvailable(Context context) { 
 
      ConnectivityManager connectivity = (ConnectivityManager)     context.getSystemService(Context.CONNECTIVITY_SERVICE); 
 
      
 
      if (connectivity != null) { 
 
       NetworkInfo[] info = connectivity.getAllNetworkInfo(); 
 
       if (info != null) { 
 
        for (int i = 0; i < info.length; i++) { 
 
         if (info[i].getState() == NetworkInfo.State.CONNECTED) { 
 
          
 
          if (!isConnected) { 
 
           Log.v(MAIN_TAG, 
 
             "Now you are connected to Internet!"); 
 
       
 
          } 
 
          return true; 
 
         } 
 
        } 
 
       } 
 
      } 
 
      // Toast.makeText(getApplicationContext(), "not connected", Toast.LENGTH_LONG).show(); 
 

 
      Log.v(MAIN_TAG, "You are not connected to Internet!"); 
 

 
      return false; 
 
     } 
 
    }

関連する問題

 関連する問題