如果在BroadcastReceiver的onReceive()方法中如下启动一个Activity
Intent intent=new Intent(context,AnotherActivity.class);
context.startActivity(intent);
在启动这个Activity的时候程序会直接崩溃。
可捕获异常信息:
android.util.AndroidRuntimeException:
Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag.
Is this really what you want?
它说明:在Activity的context(上下文环境)之外调用startActivity()方法时
需要给Intent设置一个flag:FLAG_ACTIVITY_NEW_TAS K。
所以在BroadcastReceiver的onReceive()方法中启动Activity应写为:
Intent intent=new Intent(context,AnotherActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
此时启动则再无崩溃。