【问题标题】:Splash screen opens only first time application starts启动画面仅在应用程序首次启动时打开
【发布时间】:2011-11-28 20:19:57
【问题描述】:

有一个包含 2 个活动的应用程序:启动屏幕和主屏幕。安装应用程序后,它会显示启动画面,然后完成启动启动活动并启动主要活动。然后我测试了 3 个场景:

  1. 应用程序启动,屏幕上显示第二个活动。我通过 DDMS 杀死了应用程序进程,再次启动应用程序 - 一切正常 - 我再次看到启动画面,然后是第二个活动

  2. 应用程序启动,屏幕上显示第二个活动。我按返回键,然后终止进程,再次启动应用程序——一切正常,它首先启动启动

  3. 应用程序启动,屏幕上显示第二个活动。我按下 home 键,然后终止进程,再次启动应用程序 - 令人惊讶的是 - 应用程序在第二个活动上启动,转义飞溅

怎么了?

还有一些类似的问题,但我仍然没有答案。

谁能解释这种行为?

【问题讨论】:

  • 您应该链接到相关问题,因为这可能会有所帮助

标签: android


【解决方案1】:

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

但如果你真的想在启动 Activity 上有一个闪屏,有两种选择。一种是在根RelativeLayout 中有两个视图。一个在ImageView 内带有初始屏幕,另一个布局带有活动的实际内容。然后,用你最喜欢的动画隐藏ImageView

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


更新:

好的,我忘了提及为什么会在您的应用中发生这种情况。 在任何 Android 应用程序中,我们都有一组松散绑定的 Activity,并且(通常)当我们启动一个新 Activity 时,它会被添加到 Activity 堆栈中(以管理后面的行为)。我说通常是因为您可以根据需要更改该行为(launchMode)。

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

Android 生命周期有时可能会让人有些头疼,但一旦你了解它,它就会经过深思熟虑。

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

【讨论】:

  • 我刚学安卓开发。我描述的行为对我来说似乎很奇怪。我可以从应用程序中排除启动画面,但我只是想了解这种奇怪的行为
【解决方案2】:

应用程序总是从你以前的位置开始...... 假设你有 5 秒的时间。 您使用初始屏幕打开应用程序 4 秒钟。 你关闭应用程序。 你打开它。 启动画面只剩下 1 秒了

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-11
    • 1970-01-01
    • 2014-11-28
    相关资源
    最近更新 更多