manifest 中:
代码中:
IntentFilter intentFilter;
BootCompleteReceiver bootCompleteReceiver;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
intentFilter = new IntentFilter();
intentFilter.addAction("android.intent.action.BOOT_COMPLETED");
bootCompleteReceiver = new BootCompleteReceiver();
registerReceiver(bootCompleteReceiver,intentFilter);
}
都写了BootCompleteReceiver
class BootCompleteReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context,"hello world",Toast.LENGTH_SHORT).show();
}
}
但是在manifest中可以实现开机toast,在代码中写的registerReceiver不能实现开机toast,这是为什么??
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
动态注册和静态注册的区别。
manifest里的广播应该是在会在系统的全局广播列表里注册了;
代码注册的,只有在app启动执行了这段注册代码后才注册。
因为刚开机的时候你的代码还没有运行
manifest里声明的,是在
安装的时候注册代码写的,是在你代码
执行的时候注册的