关于设置了权限并且监听了RECEIVE_BOOT_COMPLETED广播但还是不能开机启动相应组件的问题,网上找了一些答案,基本上都说的是在正常情况,没有任何意外的情况下开机启动activity或者service,我这里发现一种情况也导致开机后没有调用onReceive()方法,故记录下来供遇到相同情况的朋友们参考。
首先还是在应用程序包里面新建BootBroadcastReceiver类并继承BroadcastReceiver,重写onReseiver()方法,代码如下:
public class BootBroadcastReceiver extends BroadcastReceiver{
private static final String action_boot = "android.intent.action.BOOT_COMPLETED";
@Override
public void onReceive(Context context, Intent intent) {
if(intent.getAction().equals(action_boot))
{
Log.d("onReceive:", "Boot system");
Intent startIntent = new Intent(context,MainActivity.class);
startIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(startIntent);
}
}
}