J'utilise le récepteur de diffusion pour la disponibilité d'Internet. Voici le codela désactivation de wifi entraîne deux fois l'appel à onReceive()
private BroadcastReceiver mConnReceiver = new BroadcastReceiver() {
public void onReceive(Context context, Intent intent) {
boolean noConnectivity = intent.getBooleanExtra(ConnectivityManager.EXTRA_NO_CONNECTIVITY, false);
String reason = intent.getStringExtra(ConnectivityManager.EXTRA_REASON);
boolean isFailover = intent.getBooleanExtra(ConnectivityManager.EXTRA_IS_FAILOVER, false);
NetworkInfo currentNetworkInfo = (NetworkInfo) intent.getParcelableExtra(ConnectivityManager.EXTRA_NETWORK_INFO);
NetworkInfo otherNetworkInfo = (NetworkInfo) intent.getParcelableExtra(ConnectivityManager.EXTRA_OTHER_NETWORK_INFO);
if (!cd.isConnectingToInternet()) {
// Internet Connection is not present
alert.showAlertDialog(DashBoardActivity.this,
"Internet Connection Error",
"Please connect to working Internet connection", false);
// stop executing code by return
return;
}
if(currentNetworkInfo.isConnected()){
Toast.makeText(getApplicationContext(), "Connected", Toast.LENGTH_LONG).show();
}else{
Toast.makeText(getApplicationContext(), "Not Connected", Toast.LENGTH_LONG).show();
}
}
};
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
this.registerReceiver(this.mConnReceiver,
new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION));
Toast.makeText(getApplicationContext(), "In resume", Toast.LENGTH_LONG).show();
}
Lorsque je passe sur la connexion Wi-Fi OnReceive est appelé une seule fois, mais quand j'éteins la connexion Wi-Fi OnReceive est appelé deux fois à cause de cette Toast ou pop utilisé dans le code ci-dessus apparaît deux fois.
Quelqu'un peut-il aider sur cette erreur étrange?
Toujours le même effet – Bunny
remove registerReceiver on onResume(), placez ceci dans votre onCreate(). –
registerReceiver dans Oncreate(); –