Один важный момент, о котором люди забывают упомянуть, это время жизни Broadcast Receiver
. Отличие программной регистрации от регистрации в AndroidManifest.xml состоит в том, что. В файле манифеста это не зависит от времени жизни приложения. Хотя при программной регистрации это зависит от времени жизни приложения. Это означает, что если вы зарегистрируетесь в AndroidManifest.xml , вы сможете поймать транслируемые намерения, даже если ваше приложение не запущено.
Редактировать: упомянутое примечание больше не относится к Android 3.1, система Android исключает все получатели из намерений получения по умолчанию, если соответствующее приложение никогда не запускалось пользователем или если пользователь явно остановил приложение через меню Android (в Управление → Приложение). https://developer.android.com/about/versions/android-3.1.html
Это дополнительная функция безопасности, поскольку пользователь может быть уверен, что только приложения, которые он запустил, будут получать намерения вещания.
Таким образом, можно понимать, что получатели, программно зарегистрированные в Приложении, onCreate()
будут иметь тот же эффект, что и получатели , объявленные в AndroidManifest.xml от Android 3.1 выше.