Получение множественного вещания является специфической проблемой устройства. Некоторые телефоны просто отправляют одну трансляцию в то время как другие отправляют 2 или 3. Но есть работа вокруг:
Предполагая, что вы получите сообщение об отключении, когда Wi-Fi отключен, я бы предположил, что первый из них правильный, а другой 2 по какой-то причине являются лишь эхом.
Чтобы узнать, что сообщение было вызвано, вы можете иметь статическое логическое значение, которое переключается между подключением и отключением и вызывает вызовы подпрограмм при получении соединения, а логическое значение - true. Что-то вроде:
public class ConnectionChangeReceiver расширяет BroadcastReceiver { private static boolean firstConnect = true;
@Override
public void onReceive(Context context, Intent intent) {
final ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
final NetworkInfo activeNetInfo = connectivityManager.getActiveNetworkInfo();
if (activeNetInfo != null) {
if(firstConnect) {
// do subroutines here
firstConnect = false;
}
}
else {
firstConnect= true;
}
}
}
http://stackoverflow.com/questions/5276032/connectivity-action-intent-received-twice-when-wifi-connected, http://stackoverflow.com/questions/8412714/BroadcastReceiver-получает-множественные идентичные-сообщения к одному-событиям –