在manifests中注册开机启动可以成功,但是在代码中注册开机启动不可以,这是为什么?

manifest中:
代码中:
IntentFilterintentFilter;
BootCompleteReceiverbootCompleteReceiver;
@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
intentFilter=newIntentFilter();
intentFilter.addAction("android.intent.action.BOOT_COMPLETED");
bootCompleteReceiver=newBootCompleteReceiver();
registerReceiver(bootCompleteReceiver,intentFilter);
}
都写了BootCompleteReceiver
classBootCompleteReceiverextendsBroadcastReceiver{
@Override
publicvoidonReceive(Contextcontext,Intentintent){
Toast.makeText(context,"helloworld",Toast.LENGTH_SHORT).show();
}
}
但是在manifest中可以实现开机toast,在代码中写的registerReceiver不能实现开机toast,这是为什么??
Qyouu
浏览 534回答 2
2回答

GCT1015

动态注册和静态注册的区别。manifest里的广播应该是在会在系统的全局广播列表里注册了;代码注册的,只有在app启动执行了这段注册代码后才注册。

慕田峪4524236

因为刚开机的时候你的代码还没有运行
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript