如何从意图强制重启活动

时间:2011-07-26 12:51:57

标签: android

我的MainActivitylauchMode="singleTask"

现在我想从具有特殊意图数据的通知开始活动。 在MainActivity.onResume我访问给定的意图数据......

问题是:当活动已经存在,并且我点击通知时,活动将进入前台,但是方法onResume未被调用,我无法访问意图数据。

我尝试了旗帜FLAG_ACTIVITY_CLEAR_TASK,这适用于Honeycomb,但不适用于Gingerbread。

这是我从通知开始活动的方式:

Intent intent = new Intent();
intent.setClass(this, MainActivity.class);
intent.putExtra("triggerid", triggerid); 
startActivity(intent);

1 个答案:

答案 0 :(得分:9)

如果活动不在前台,则始终会调用

onResume()。但是,您可能看到的是getIntent()返回启动活动的意图,而不是最近发送给它的意图。

要解决此问题,您应该覆盖onNewIntent()。这将收到发送给它的新意图。然后,您可以使用收到的意图调用setIntent(),这会导致getIntent()onResume()中使用时返回新意图。