我试图以编程方式注册接收器以执行操作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);
我试图将app以及boot_completed动作更新到同一个广播接收器。
所以我尝试的是,
我通过注册上面的代码来运行活动,然后重新启动设备。我没有得到BootReceiver onReceive()
方法的任何回调。
是否可以以编程方式为boot_completed操作声明接收器,或者是否有必要在清单文件中声明接收器。
实际上我的要求是以编程方式声明它。
提前致谢。
答案 0 :(得分:5)
我试图以编程方式为actionandroid.intent.action.BOOT_COMPLETED注册一个接收器
当调用registerReceiver()
时,启动将很快发生。注册android.intent.action.BOOT_COMPLETED
的唯一地方是清单,因为即使您没有正在运行的进程,它也可以注册对广播的兴趣。
是否可以以编程方式为boot_completed操作声明接收器
没有。你可以申请,但它永远不会有效。
是否有必要在清单文件中声明接收器
如果你想要一个人工作,是的。