有一个应用程序有2个活动:启动画面和主屏幕。安装应用程序后,它会显示启动,然后完成启动活动并启动主要活动。然后我测试3个场景:
App已启动,屏幕上显示第二项活动。我通过DDMS杀死应用程序进程,再次启动应用程序 - 一切都正确 - 我再次看到启动,然后是第二次活动
App已启动,屏幕上显示第二项活动。我按回键,然后杀死进程,再次启动应用程序 - 一切都正常,它首先启动启动
App已启动,屏幕上显示第二项活动。我按回车键,然后杀死进程,再次启动应用程序 - 并且有惊喜 - 应用程序启动第二个活动,逃避启动。
出了什么问题?
还有一些像这样的问题,但我仍然没有答案。
有人可以解释这种行为吗?
答案 0 :(得分:2)
无论如何,启动画面并不是一个好主意,因为它让用户感觉应用程序是一个附加组件,并且会略微打破整个系统的生命周期。
但是如果你真的想在发布活动上有一个闪屏,有两种选择。一种是在根RelativeLayout
内有两个视图。一个在ImageView
内有启动画面,另一个布局包含活动的实际内容。然后,使用您喜欢的动画隐藏ImageView
。
或者,您可以使用片段而不是内容布局并加载Activity
个实例(以前使用ActivityGroup
完成的操作)。
<强>更新强>
好的,我忘了提到为什么会在您的应用中发生这种情况。 在任何Android应用程序中,我们都有一组松散绑定的活动,并且(通常)当我们启动一个新的Activity时,它会被添加到Activity堆栈中(以管理后退行为)。我通常会这样说,因为如果需要,你可以改变那种行为(launchMode)。
当您按下后退按钮时,堆栈将被清空,活动将终止。另一方面,当按下主页按钮时,堆栈将在重新启动时保存并恢复。
Android生命周期有时会让人感到头痛,但是一旦你理解了,它就会经过深思熟虑。
这里有一些进一步的阅读:Activity and Task Design Guidelines
答案 1 :(得分:0)
应用程序始终从您以前的位置开始.... 让我们说你有5秒钟。 使用启动画面打开应用程序4秒钟。 你关闭应用程序。 你打开它。 启动画面仅剩1秒钟