我遇到了这些链接中提到的问题:
http://code.google.com/p/android/issues/detail?id=2373
http://groups.google.com/group/android-developers/browse_thread/thread/2d88391190be3303?tvc=2
我有一个简单的根活动,具有LAUNCHER和MAIN意图,没有其他内容。我启动另一个活动,它在清单中没有任何标志或其他额外内容。
我启动应用程序(根活动),然后从那里启动第二个活动。按下Home键后,任务进入后台。再次启动应用程序(从Launcher或从按住Home键的最近应用程序),它会在现有堆栈的顶部启动根活动的新实例。
如果我按下返回按钮,新的“根”活动将关闭,旧的第二个活动将可见,这意味着它在同一任务中启动了根活动,而不是将任务带到前台。
为了解决这个问题,我将根活动的启动模式设置为singleTask。现在,当我按下Home并再次启动应用程序时,它会清除旧根任务上面的活动,并将旧根任务带到前台,而不仅仅是将整个旧任务与2号活动置于顶部。请注意,旧的根任务仍保留其应用程序状态,这意味着它不是一个新实例,但较高级别的活动已被终止。
这甚至发生在从市场下载的其他应用程序中。手动安装方法对我没有影响,它仍然以同样的方式启动。