在JellyBean中没有调用onNewIntent

时间:2013-05-24 10:22:38

标签: java android android-activity android-4.2-jelly-bean

我发现在2.3.4和4.2之间onNewIntent调用的行为有所不同。

我有launchMode=singleTask的活动。根据我对singleTask如何工作的理解,每次从任务列表恢复活动时,都应该调用onNewIntent

这是2.3.4(LG P990)当我开始活动时,按“home”将其移至前台然后从任务列表恢复(longpress“home”):

D/NewIntent(23314): onPause
D/NewIntent(23314): onNewIntent
D/NewIntent(23314): onResume
D/NewIntent(23314): onPause
D/NewIntent(23314): onNewIntent
D/NewIntent(23314): onResume


4.2(Nexus 4)相同:

D/NewIntent(12960): onPause
D/NewIntent(12960): onResume
D/NewIntent(12960): onPause
D/NewIntent(12960): onResume

如您所见,未调用onNewIntent。

有人可以解释一下发生了什么吗?

2 个答案:

答案 0 :(得分:1)

我在4.2.2上遇到了与Galaxy Nexus相同的问题。该代码是在模拟的Nexus S(API 15)上开发的。我最终将逻辑从onNewIntent()移动到onResume()。

答案 1 :(得分:1)

在我头痛的同时试图解决这个困境Re-showing-a-singletask-activity我必须创建一个“中间人” - 即一个单独的(Self)IntentService,它将通过其onHandleIntent方法接收Bundle,然后立即关闭一个新的意图(对你的singleTask Activity)。

我刚刚在运行2.3.7和4.1.2的设备上测试过 - onNewIntent每次调用singleTask活动。

HTH