【问题标题】:Show Splash Screen on every launch of android application在每次启动 android 应用程序时显示启动画面
【发布时间】:2012-09-11 21:22:27
【问题描述】:

我的应用程序中有启动画面。当用户在主屏幕并按下返回按钮时;带有“您要退出吗?”的警报对话框出现,如果用户选择 OK,则调用 moveTaskToBack(true);: 并且应用程序将退出。但是在立即启动应用程序时,不会显示启动画面。如何在每次启动应用程序时显示启动画面?

【问题讨论】:

  • 点击ok就放finish();
  • 闪屏!真的...?不是一个好主意:)
  • 在 Android 中通常是个坏主意。但是您可以将 splash 定义为清单中的启动活动。当然,如果用户暂停一个活动,它将在该活动处恢复。您可以检查 onResume,但请务必在显示启动画面之前从导航堆栈中删除该活动。
  • 没有启动画面。您甚至无法确定“应用程序”何时开始。

标签: android user-interface interface


【解决方案1】:

关于如何制作启动画面的几点建议。

假设我们有SplashActivityHomeActivity

SplashActivity 应该是您的启动器活动(在清单中)。

<intent-filter>
      <action android:name="android.intent.action.MAIN" />

      <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>

当您启动HomeActivity 时,您应该在SplashActivity 上调用finish(),这样您就不会在单击返回按钮时返回它。

HomeActivity 中,当您拦截后退按钮以显示对话框时,请勿在 OK 上调用 moveTaskToBack(true);,因为这只会将您的应用程序移至后台并且不会终止它。

您应该致电 finish()。由于您已经在SplashActivity 上调用了finish,因此剩下的唯一活动是HomeActivity,因此您的应用程序将关闭。

【讨论】:

  • 问题是用户可以在应用程序运行中多次访问主屏幕,因此如果从其他活动访问主屏幕并调用完成()应用程序不会退出并显示另一个最后活动。
  • 从其他活动启动HomeActivity 时,您可以通过clearing the backstack 解决此问题。
  • 我的应用程序就像 Splash > Home > ... 其他活动。我打电话给 moveTaskToBack(true);从家里。当我从设备中的应用程序启动器重新启动应用程序时,Splash 没有显示它直接转到主页。那么在这种情况下如何展示 Splash 呢?
【解决方案2】:

理想情况下你不应该这样做。你应该尊重用户对应用行为的期望。当他点击你的应用时,它应该从他离开的地方开始。如果应用程序由于内存限制而被终止,那么它将重新启动 .

如果你想这样做:来源:Close application and launch home screen on Android

Intent intent = new Intent(this, FinActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
finish();

FinActivity 内部: 在 onCreate 中调用 finish()。

【讨论】:

    【解决方案3】:

    我认为您的 SplashScreen 仅在应用程序启动时显示。
    因此,如果 Acitivites 未完成而只是暂停,则 SplashScreen 将不会显示,因为应用程序并未真正关闭。

    您可以在按下返回按钮时完成应用程序(代码:this.finish()),或者检查每个 Activity 的 onResume()-方法,如果应用程序在后台,如果为真则显示 SplashScreen。

    【讨论】:

      【解决方案4】:

      我觉得启动屏幕是必要的唯一原因是为了启动应用程序,如果你想在这样做的时候通过线程加载一些信息,但这只是我的看法。

      无论如何,您应该将启动画面作为清单中的第一个 Activity 启动,然后在启动将启动您的下一个 Activity 的 Intent 之后?(实际主要)。几个月前,当我第一次处理这些问题时,我使用了一个很棒的教程,它会一步一步地与你一起完成。 我希望这会有所帮助:)

      Tutorial I Tutorial II

      【讨论】:

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