2016-08-03 14 views
-2

の開始時に呼び出されるばかり私は、インターネット接続を確認するためにBroadcastRecieverを使用していますが、それはactivity.Thisの開始時に呼び出さなっている私のBroadcastReceiverBroadcastRecieverは(インターネット接続を確認するには)活動

public BroadcastReceiver broadcastReceiver = new BroadcastReceiver() { 
     @Override 
     public void onReceive(final Context context, Intent intent) { 
      connectivityManager = (ConnectivityManager) 
        context.getSystemService(Context.CONNECTIVITY_SERVICE); 
      activeNwInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI); 
      boolean isWifiConnected = activeNwInfo != null && activeNwInfo.isConnectedOrConnecting(); 
      activeNwInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE); 
      boolean isMobileNwConnected = activeNwInfo != null && activeNwInfo.isConnectedOrConnecting(); 
      try { 
       if (isWifiConnected || isMobileNwConnected) { 
        Snackbar.make(cordinatorlayout, "Connection established", Snackbar.LENGTH_INDEFINITE) 
          .setAction("GO ONLINE", new View.OnClickListener() { 
           @Override 
           public void onClick(View view) { 
            //Toast.makeText(context, "clicked", Toast.LENGTH_SHORT).show(); 
            finish(); 
            startActivity(getIntent()); 
           } 
          }).show(); 
       }else { 
        Snackbar.make(cordinatorlayout, "You are Offline", Snackbar.LENGTH_INDEFINITE).show(); 
       } 
      }catch (Exception e){ 
       e.printStackTrace(); 
      } 
     } 
    }; 
` and I have registered BroadcastReceiver inside oncreate() of MainActivity. My BroadcastReceiver is getting called but it is getting called at the start of activity. 

答えて

0
です

BroadcastReceiverを設定すると、最初は一度呼び出されます。その後、インターネット接続状態の変化を監視し始め、状態が変更されるたびに呼び出されます。

インターネット接続がDISCONNECTEDからCONNECTEDに変更されたときにのみ呼び出したい場合は、現在のステータスを保持する変数を作成します。あなたの受信機にCONNECTEDを受け取ったら、変数がDISCONNECTEDかどうか確認してください。もしそうなら、あなたは何でもしてください。それ以外の場合は何もしないでください。

+0

インターネットがアプリの開始時に接続されている場合、私はオンラインイベントのスナックバーを表示したくありません。 –

+0

私のことを見てください。 –

+0

ありがとう、私はお試しください –

関連する問題