奇怪的Home按钮行为

时间:2010-01-23 03:25:10

标签: android

按下硬按钮后,我遇到了应用程序的一些奇怪行为。 当你按Home时,一切正常 - 我的应用程序转到后台,显示主屏幕。但是如果您尝试在主菜单或最后任务列表中选择我的应用程序,它的行为就像以前没有启动过,并且没有显示您上次访问的最后一项活动 - 它只是从头开始,即显示启动画面并开始下一个相应的活动。此外,此应用程序的旧活动仍保留在活动堆栈上,并且应用程序的先前实例未终止 - 因此,如果您按Back几次,您将只会遇到那些在上一个工作期间无疑启动的活动与我的应用程序。启动屏幕活动由“android.intent.action.MAIN”过滤器和“android.intent.category.LAUNCHER”类别过滤。 奇怪的是,所有这一切都发生了,尽管我不拦截任何Back键命中,或覆盖任何onPause或onResume方法。发生的事情与我对Android应用程序生命周期的理解相矛盾 - 我确信当你点击Home时,应用程序只会转到后台,当你稍后在菜单中选择它时 - 它只是展开并且不会重新开始。 (当然,除非在应用程序清单中声明了类似的东西或相应的方法被覆盖或其他)。 我还检查了一些其他生命周期事件 - 例如改变方向或翻转硬键盘 - 并且没有一个导致这种奇怪的结果。当您尝试从上一个应用程序的主菜单或菜单启动应用程序时,似乎会出现问题。 我希望你能帮助我。关于要注意什么或在哪里寻找解决方案的任何建议都会非常棒。

此致,Alex

1 个答案:

答案 0 :(得分:0)

您需要在清单文件中的LAUNCHER活动中设置android:launchMode="singleTask"

有关launchMode属性的更多信息,请参阅here

请注意:

  

默认模式为“标准”。

  

每   时间有一个新的意图   “标准”活动,一个新的实例   创建类以响应   那个意图。

相关问题