问题
Boot broadcast receiver is not working and there is nothing in onReceive()
public class BootReceived extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (Intent.ACTION_BOOT_COMPLETED.equals(intent.getAction())) {
Toast.makeText(context, intent.getAction(), Toast.LENGTH_LONG).show();
Log.d("IfWalaBooot", intent.getAction());
Intent intent1 = new Intent(context, MainActivity.class);
intent1.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent1);
Intent tni = new Intent(context, MainService.class);
tni.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startService(tni);
}
}
回答1:
- Make sure that you have registered your receiver in Manifest .
- Implicit Broadcast Exceptions refer to this link to check if your implicit receiver is in exception list or not.
- if not in exception the you can make job scheduler or register your receiver in your code itself .Here is a nice snippet you could refer on It’s time to kiss goodbye to your implicit BroadcastReceivers
来源:https://stackoverflow.com/questions/55429554/broadcast-receiver-is-not-working-in-oreo-and-pie-android