2011-09-30 95 views
1

有一个应用程序有两个活动:启动屏幕和主屏幕。安装应用程序后,它会显示飞溅,然后完成Splash活动并启动主要活动。然后我测试3种情况:初始屏幕仅在第一次启动应用程序时打开

  1. 应用程序启动,第二项活动显示在屏幕上。我杀了通过DDMS应用程序,启动应用程序再次 - 一切是正确的 - 我再次看到溅起的水花,然后第二个活动

  2. 应用程序启动时,第二个活动显示在屏幕上。我按返回键,然后杀死进程,重新启动应用程序 - 一切都还好吗过,它推出第一溅

  3. 应用程序启动时,第二个活动显示在屏幕上。我按回家键,然后杀死进程,再次启动应用程序 - 并有惊喜 - 应用程序启动第二个活动,逃脱飞溅

什么问题?

还有其他一些这样的问题,但我仍然没有答案。

有人可以解释这种行为吗?

+0

你应该链接到相关的问题,因为这可以帮助 – Merlin

回答

0

应用总是从你那里才开始.... 比方说你有5秒。 您使用启动画面打开应用程序4秒钟。 你关闭了应用程序。 你打开它。 启动画面仅剩1秒

2

无论如何,启动画面并不是一个真正的好主意,因为它使用户感觉应用程序是一个附加组件,并略微打破整个系统生命周期。

但如果你真的要对发射活动启动画面,有两种选择。一个是在根目录RelativeLayout内有两个视图。一个与ImageView内的启动画面和另一个布局与活动的实际内容。然后,用你最喜欢的动画隐藏ImageView

或者,您可以使用片段而不是内容布局,并加载Activity实例(以前使用ActivityGroup完成的操作)。


更新:

好吧,我忘了提及这是为什么在你的应用中发生的。 在任何Android应用程序中,我们都有一组松散绑定的活动,并且(通常)在我们启动新Activity时将其添加到Activity堆栈(以管理后退行为)。我通常说,因为如果需要可以更改该行为(launchMode)。

当您按下后退按钮堆栈被清空并且活动终止。另一方面,当按下主页按钮时,堆栈将在重新启动时保存并恢复。

Android的生命周期可能会有点头疼的时候,但是一旦你了解它是真正深思熟虑过。

这里是一些进一步阅读:Activity and Task Design Guidelines

+0

我只是学习Android开发。我描述的行为似乎很奇怪。我可以从应用中排除启动屏幕,但我只是想了解这种奇怪的行为 – Ashot

相关问题