如何从意图强制重启活动

app*_*ter 5 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);
Run Code Online (Sandbox Code Playgroud)

bla*_*oni 9

onResume()如果活动不在前台,则始终调用.但是,您可能看到的getIntent()是返回启动活动的意图,而不是最近发送给它的意图.

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