Je suis la mise en œuvre de la connectivité Internet perdue dans mon application en utilisant BroadcastReceiver.Le code fonctionne très bien, mais l'alerte qui est affichée sur la connexion ou la déconnexion internet montrant deux fois.Je veux montrer alerte ou toast une seule fois à un time.Below est mon code de BroadcastReceiveronReceive de BroadcastReceiver affiche une alerte 2 fois dans android
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals("android.net.conn.CONNECTIVITY_CHANGE")) {
ConnectivityManager cm =
(ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
//NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
if (cm.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState() == NetworkInfo.State.CONNECTED
|| cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState() == NetworkInfo.State.CONNECTED) {
// notify user you are online
Toast.makeText(context.getApplicationContext(), "Connected", Toast.LENGTH_LONG).show();
} else if (cm.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState() == NetworkInfo.State.DISCONNECTED
|| cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState() == NetworkInfo.State.DISCONNECTED) {
Constants.alert("Please check your internet connection", context);
// notify user you are not online
}
Ajouter à Toast plus d'informations de débogage: les états pour tous les réseaux – bukkojot
@bukkojot Pouvez-vous fournir plz conseil de code? –
Quelque chose comme ceci, ajoutez-le au début de onReceive et voir aux changements: Toast.makeText (context.getApplicationContext(), "onReceive:" + intention.getAction() + ", mobile:" + cm.getNetworkInfo (ConnectivityManager.TYPE_MOBILE) + ", wifi:" + cm.getNetworkInfo (ConnectivityManager.TYPE_WIFI), Toast.LENGTH_LONG) .show(); – bukkojot