Я пытаюсь понять основные различия между регистрацией BroadcastReceiver в манифесте и его программным программированием...
Мое понимание в основном выглядит следующим образом (хотелось бы, чтобы кто-то исправлял мои баллы, если мне что-то не хватает).
-
Зарегистрировано в манифесте:
- ОС будет волшебным образом находить и создавать экземпляр вашего класса, если необходимо, вызывая метод onReceive(), независимо от того, что работает состояние вашего приложения
- Ваш прием будет вызываться только один раз для трансляции (т.е. вы можете считать, что регистрация в манифесте похожа на регистрацию вашего "класса" для приема широковещательной передачи - и трансляция создает экземпляр вашего класса по мере необходимости) (??)
-
Зарегистрировано программно:
- Регистрация в коде означает, что вы регистрируете экземпляры своего класса для приема широковещательных сообщений (т.е. если ваш код немного неаккуратно, и вам удается регистрироваться несколько раз, вы получите несколько экземпляров BroadcastReceiver, у которых есть свой onReceive ( ) вызвал для широковещательной передачи
- Чтобы отменить регистрацию, вам необходимо отменить регистрацию конкретного экземпляра BroadcastReceiver, который вы ранее зарегистрировали
- Если ваше приложение будет уничтожено ОС, ваш метод onReceive() не будет вызываться для широковещательной передачи
спасибо