Одним важливим моментом, який люди забувають згадати, є час життя 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 вище.