我看到2.3.4和4.2之间的onNewIntent调用行为有所不同。
我和launchMode=singleTask有个活动。根据我对singleTask工作原理的理解,每次从任务列表恢复活动时,都应该调用onNewIntent。
这是2.3.4 (LG P990)上发生的事情当我开始一个活动时,按“主页”将其移动到前台,然后从任务列表中恢复(长按“主页”):
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没有被调用。
有人能给我解释一下发生了什么事吗?
发布于 2013-05-26 20:11:23
我在4.2.2版本的Galaxy Nexus上也遇到了同样的问题。该代码是在模拟的Nexus S (API 15)上开发的。我最终将逻辑从onNewIntent()移到了onResume()。
发布于 2013-07-19 08:11:41
在试图解决这个难题期间,我不得不创建一个“中间人”--即一个独立的(自我) IntentService,它将通过其onHandleIntent方法接收一个Re-showing-a-singletask-activity,然后立即发出一个新的意图(到您的singleTask活动)。
我刚刚在运行2.3.7和4.1.2的设备上进行了测试-每次在singleTask活动上调用onNewIntent。
hth
https://stackoverflow.com/questions/16732777
复制相似问题