2016-03-02 613 views
0

我在互聯網連接時自動調用Web服務時創建了一個活動中的一個接收器。OnReceive()方法自動觸發

類似的代碼

//Create receiver for while network will come auto call webservice 

private BroadcastReceiver mConnReceiver = new BroadcastReceiver() { 
    @Override 
    public void onReceive(Context context, Intent intent) { 
     boolean noConnectivity = intent.getBooleanExtra(ConnectivityManager.EXTRA_NO_CONNECTIVITY, false); 
     if (!noConnectivity) { 
      bar.setVisibility(View.VISIBLE); 
      callAuthorizeWebservice(); 
     } else { 
      bar.setVisibility(View.INVISIBLE); 
      Toast.makeText(SplashScreenActivity.this, "Check Your Internet connection", Toast.LENGTH_LONG).show(); 
     } 
    } 
}; 

@Override 
    protected void onStop() { 
     super.onStop(); 
     unregisterReceiver(mConnReceiver); 
    } 

    @Override 
    protected void onStart() { 
     super.onStart(); 
     this.registerReceiver(this.mConnReceiver, 
       new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION)); 
    } 

當我打開該活動的onReceive()是方法稱爲每次。
如何避免第一次調用它(打開該Activity時)?

+0

http://stackoverflow.com/questions/16427812/broadcastreceiver-onreceive-triggered-when-registered – csenga

+0

「如何避免第一次調用它」---你的意思是避免調用它每次除了第一次? – AADProgramming

回答

0

廣播是當你註冊的第一次(CF持久廣播消息)發送,一個解決方案是使用isInitialStickyBroadcastonReceive回調您BroadcastReceiver的知道,如果你實際上是在進行一個持久廣播消息並據此採取行動(BroadcastReceiver : isInitialStickyBroadcast