我正面临这些链接中提到的问题:
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 按钮后,任务进入后台。再次启动应用程序时(从启动器或按住最近应用程序的主页按钮),它会在现有堆栈之上启动根活动的新实例。
如果我按下后退按钮,新的“根”活动关闭并且旧的第二个活动可见,这意味着它在同一任务中启动根活动,而不是将任务带到前台。
为了解决这个问题,我制作了根活动的启动模式singleTask。现在,当我按下 home 键并再次启动应用程序时,它会清除旧根任务上方的活动,并将旧根任务带到前台,而不是仅仅将带有第二个活动的整个旧任务放在前面。请注意,旧的根任务仍保留其应用程序状态,这意味着它不是新实例,但更高的活动已被杀死。
它甚至出现在从市场上下载的其他应用程序上。手动安装方法对我没有影响,它仍然以相同的方式启动。