boot_completed действие для регистрации программно, а не в манифесте
Я пытался программно зарегистрировать приемник для действийandroid.intent.action.BOOT_COMPLETED
, т.е. давайте возьмем у меня класс приемника с именем BootReceiver, который расширяет BroadCastReceiver
учебный класс.
Итак, в одном из моих занятий я написал этот код,
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction("android.intent.action.BOOT_COMPLETED");
intentFilter.addAction("android.intent.action.PACKAGE_REPLACED");
BootReceiver receiver = new BootReceiver();
getApplicationContext().registerReceiver(receiver, intentFilter);
Я пытался выполнить как обновление приложения, так и действие boot_completed для одного и того же широковещательного приемника.
Итак, что я попробовал, я запустил активность с регистрацией вышеуказанного кода, а затем перезапустил устройство. Я не получал никакого обратного вызова в BootReceiver onReceive()
метод.
Можно ли программно объявить получателя для действия boot_completed или необходимо объявить получателя в файле манифеста.
На самом деле мое требование состоит в том, чтобы программно объявить это.
Заранее спасибо.
1 ответ
Я пытался программно зарегистрировать получателя для actionandroid.intent.action.BOOT_COMPLETED
Тем временем registerReceiver()
называется, загрузка уже давно произошла. Единственное место для регистрации android.intent.action.BOOT_COMPLETED
находится в манифесте, так как он может зарегистрировать интерес к широковещанию, даже если у вас нет запущенного процесса.
Можно ли программно объявить получателя для действия boot_completed
Вы можете запросить это, но это никогда не сработает.
нужно ли указывать получателя в файле манифеста
Если вы хотите, чтобы один работал, да.