【发布时间】:2015-03-18 16:32:14
【问题描述】:
我正在尝试在 Intent 中添加更多标志,以在 BroadcastReceiver 中启动新 Activity,以响应从应用程序的另一部分发送的特定 Intent。
正如我注意到的那样,我已经在我创建的 Intent 中添加了 FLAG_ACTIVITY_NEW_TASK 标志,然后添加了其他标志,但我在 LogCat 中遇到了与 FLAG_ACTIVITY_NEW_TASK 不存在相同的错误。
代码如下:
public class actReceiver extends BroadcastReceiver {
...
public void onReceive(Context context, Intent intent) {
...
else if (intent.getAction().equals("something")) {
Intent prefAct = new Intent(context, PreferencesActivity.class)
prefAct.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
.setFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS)
.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY)
.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
startActivity(prefAct);
}
... }
... }
以及特定的 LogCat 错误:
Caused by: android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?
【问题讨论】:
标签: android android-intent android-activity broadcastreceiver flags