0
@Override
protected void onMessage(Context context, Intent intent) {
    Log.e("C2DM", "Neue Message.");
    Intent resultIntent = new Intent(context, ResultActivity.class);
    resultIntent.putExtra("message", "Message received");
    resultIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    context.startActivity(intent);
}

我可以从我的 logcat 中看到我进入了这个方法,然后当它尝试启动活动时,它会抛出标题中写的致命异常,并带有以下注释:

android.util.AndroidRuntimeException:从 Activity 上下文外部调用 startActivity() 需要 FLAG_ACTIVITY_NEW_TASK 标志。这真的是你想要的吗?(我对 AndroidRuntime 的回复是:“这不是我在做什么吗?”);-)

4

1 回答 1

0

您传递了错误的意图变量来startActivity()调用。您想用来resultIntent启动新活动并且您正在添加FLAG_ACTIVITY_NEW_TASK标志,resultIntent但是在启动新活动时您intent错误地通过了,即

resultIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);

将其更改为

resultIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(resultIntent);
于 2012-05-16T11:27:45.433 回答