Я пытаюсь понять основные различия между регистрацией BroadcastReceiver в Manifest и регистрации его программно ...Основное различие между манифеста и Программной УЧЕТ BroadcastReceiver
Я понимаю, в основном следующим образом (был бы признателен кто-то исправляя мой если я чего-то не хватает).
Зарегистрированный в манифесте:
- ОС будет волшебно найти и создать экземпляр класса, если это необходимо, вызвав метод OnReceive(), независимо от того, что состояние движения вашего приложения был
- Ваш получить будет вызываться только один раз для трансляции (т. е. вы можете считать, что регистрация в манифесте похожа на регистрацию вашего «класса» для приема широковещательной передачи), и трансляция создает экземпляр вашего класса по мере необходимости) (??)
Registered Программный:
- регистрация в коде означает, что вы регистрируетесь экземпляры вашего класса для приема широковещательных сообщений (т.е. если ваш код немного неаккуратно, и вам удастся зарегистрироваться несколько раз, вы получите несколько экземпляров BroadcastReceiver, все из которых имеют свой onReceive(), вызываемый для широковещательной передачи
- , чтобы отменить регистрацию, вам необходимо отменить регистрацию конкретного экземпляра BroadcastReceiver, который вы ранее зарегистрированных
- , если ваше приложение получает уничтожены ОС, ваш метод OnReceive() не будет вызываться для трансляции
благодарит
И я предполагаю, что если ваша служба выйдет из строя, когда ваш транслятор передан в манифесте, приемник все равно получит сообщения ... – Boy
@Boy: Да, это должно быть. – CommonsWare
, пожалуйста, можете посмотреть, если это связано с моей проблемой: http://stackoverflow.com/questions/29728000/wifi-changed-status-affecting-my-app –