- 此问题在此处已有答案**:
Activity stack ordering problem when launching application from Android app installer and from Home screen(3个答案)
How to return to the latest launched activity when re-launching application after pressing HOME? [duplicate](5个答案)
2天前关闭。
我面临的正是这些链接中提到的问题:
http://code.google.com/p/android/issues/detail?id=2373
http://groups.google.com/group/android-developers/browse_thread/thread/77aedf6c7daea2ae/da073056831fd8f3?#da073056831fd8f3
http://groups.google.com/group/android-developers/browse_thread/thread/2d88391190be3303?tvc=2
我有一个简单的根活动,有启动器和主要意图,* 没有别的 *。我启动另一个活动,在清单中 * 没有标志或任何额外的东西 *。
我启动应用(根Activity),然后从那里启动第二个Activity。按下Home键后,任务进入后台。再次启动应用(从Launcher或按住Home键启动最近使用的应用)时,它会在现有堆栈的顶部启动根Activity的新示例。
如果我按下后退按钮,新的"根" Activity将关闭,而旧的第二个Activity将可见,这意味着它将在同一任务中启动根Activity,而不是将任务置于前台。
为了解决这个问题,我将根Activity的启动模式设置为 * singleTask *。现在,当我按home键并再次启动应用时,它会清除旧根任务上方的Activity,并将旧根任务置于前台,而不是将整个旧任务以及第二个Activity置于前台。请注意,旧根任务仍然保留其应用状态,这意味着它不是一个新示例。但较高的活性已被杀死。
它甚至发生在从市场上下载的其他应用程序上。手动安装方法对我没有影响,它仍然以同样的方式启动。
4条答案
按热度按时间b4wnujal1#
这是由于用于启动应用的Intent不同。Eclipse使用无操作和无类别的Intent启动应用。Launcher使用具有android.intent.action.MAIN操作和android.intent.category.LaUNCHER类别的Intent启动应用。安装程序使用android.intent.action.MAIN操作和无类别启动应用。
无论是谁提交了这个bug,他们都应该把它写成一个增强Eclipse插件的请求,因为他们显然希望Eclipse能够假装是启动器,并使用与启动器相同的意图启动应用程序。
nkhmeac62#
解决方案如下:
编辑:我在新Intent和通知方面遇到问题。以前的解决方案不适用于通知和Intent ...
ctehm74n3#
只需将其添加到启动器Activity的onCreate方法中,如下所示:
7gcisfzg4#
适用于Xamarin的类似解决方案。Android: