在清单文件中注册
<receiverandroid:name=\".BootReceiver\"android:enabled=\"true\"android:exported=\"true\"><intent-filter><action android:name=\"android.intent.action.BOOT_COMPLETED\" /></intent-filter></receiver>
加上权限
<uses-permission android:name=\"android.permission.RECEIVE_BOOT_COMPLETED\" />
然后需要动态注册下
IntentFilter intentFilter = new IntentFilter();intentFilter.addAction(Intent.ACTION_BOOT_COMPLETED);BootReceiver BootReceiver = new BootReceiver();this.registerReceiver(BootReceiver, intentFilter);
最后在广播接收这种如果需要跳转页面需要加上
intent1.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
@Overridepublic void onReceive(Context context, Intent intent) {Log.i(\"BootReceiver\", \"onReceive: \");Intent intent1 = new Intent(context, MainActivity.class);intent1.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);context.startActivity(intent1);}
如果上面还是不可以接收到的话可能需要动态加上权限(之前做其他广播遇到的坑 这个我没试过我是直接加的)
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.RECEIVE_BOOT_COMPLETED,}, 1);