[ Простое решение ]
Проблема в Sticky Broadcasts, которые запускаются в момент регистрации.
Чтобы избежать этого, я просто добавляю еще один параметр, чтобы ограничить процесс.
Я определил статическую переменную
public static boolean triggerBroadcast = false;
Затем я изменяю его после регистрации трансляции с задержкой в несколько секунд.
registerReceiver(broadcastReceiverAction, intentFilter);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
triggerWifiBroadcast = true;
}
}, 3000);
Затем onReceive () я сравниваю intent.getAction с этим
if (intent.getAction().equals("android.net.wifi.WIFI_STATE_CHANGED") && triggerBroadcast ) {
//
}
Затем вы можете изменить его на false всякий раз, когда решите отменить регистрацию вещательного приемника.