Основное различие между манифестом и программной регистрацией BroadcastReceiver

Я пытаюсь понять основные различия между регистрацией BroadcastReceiver в Манифест и его программная регистрация ...

Я понимаю в основном следующее ( попросите кого-нибудь исправить мои замечания, если я что-то упускаю).

  • Зарегистрировано в манифесте:

    1. ОС волшебным образом найдет и создаст экземпляр вашего класса, если это необходимо, вызывая метод onReceive (), независимо от того, в каком состоянии работало ваше приложение
    2. Ваш прием будет вызван только один раз за передачу (т. Е. Вы можете считать, что регистрация в манифесте подобна регистрации вашего «класса» для приема широковещательной передачи - и широковещательная передача создает экземпляр вашего класса по мере необходимости) (??)
  • Зарегистрировано программно:

    1. регистрация в коде означает, что вы регистрируетесь экземпляры вашего класса для приема широковещательных сообщений (т.е. если ваш код немного неаккуратен, и вам удастся зарегистрироваться несколько раз, вы получите несколько экземпляров BroadcastReceiver, у всех из которых onReceive () вызывается для широковещательной рассылки
    2. для отмены регистрации, вам необходимо отменить регистрацию конкретного экземпляра BroadcastReceiver, который вы ранее зарегистрировали
    3. , если ваше приложение будет уничтожено ОС, ваш метод onReceive () не будет вызываться для широковещательной рассылки

спасибо

19
задан Behzad Bahmanyar 29 March 2016 в 14:52
поделиться