Ich implementiere Internetkonnektivität verloren in meiner Anwendung mit BroadcastReceiver.The Code funktioniert gut, aber die Warnung, die auf Internet-Verbindung oder Trennung angezeigt wird zweimal angezeigt. Ich möchte Alert oder Toast anzeigen nur ein einziges Mal in einem time.Below ist mein Code von BroadcastreceiveronReceive von BroadcastReceiver zeigt Alarm 2 mal in 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
}
In mehr Debug-Informationen Toast: Staaten für jedes Netzwerk – bukkojot
@bukkojot Können Sie Codehinweis plz? –
So etwas, fügen Sie es in Start von onReceive hinzu und sehen Sie sich Änderungen an: Toast.makeText (context.getApplicationContext(), "onReceive:" + abent.getAction() + ", mobile:" + cm.getNetworkInfo (ConnectivityManager.TYPE_MOBILE) + ", wifi:" + cm.getNetworkInfo (ConnectivityManager.TYPE_WIFI), Toast.LENGTH_LONG) .show(); – bukkojot