2016-08-03 1 views
-2

I BroadcastReciever bin mit Internet-Konnektivität zu überprüfen, aber es wird zu Beginn der activity.This genannt zu werden, ist mein BroadcastReceiverBroadcastReciever (Internet-Konnektivität zu überprüfen) zu Beginn der Tätigkeit immer genannt

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. 

Antwort

0

Es wird zunächst einmal aufgerufen, wenn Sie eine BroadcastReceiver einrichten. Danach beginnt es, Änderungen im Internetkonnektivitätsstatus zu überwachen, und es wird jedes Mal aufgerufen, wenn der Status geändert wird.

Wenn Sie möchten, dass es nur bei einer Änderung der Internetverbindung von DISCONNECTED zu CONNECTED aufgerufen wird, erstellen Sie eine Variable, die den aktuellen Status enthält. Wenn Sie in Ihrem Empfänger CONNECTED empfangen, überprüfen Sie, ob die Variable DISCONNECTED ist. Wenn ja, mach was du willst; Ansonsten nichts tun.

+0

Ich möchte die Online-Event-Snackbar nicht anzeigen, wenn das Internet zu Beginn der App verbunden ist. –

+0

Siehe meinen Zusatz. –

+0

Danke, ich werde versuchen –

Verwandte Themen