如何在应用程序启动“新鲜”时显示启动画面?

我想在应用程序生命周期中只显示一次启动画面。 这是我的代码:

SplashScreenActivity.java:

final int welcomeScreenDisplay = 3000; Thread welcomeThread = new Thread() { int wait = 0; @Override public void run() { try { super.run(); while (wait < welcomeScreenDisplay) { sleep(1000); wait += 1000; } } catch (Exception e) { System.out.println("EXc=" + e); } finally { // Start other Activity startActivity(new Intent(SplashScreenActivity.this, MainActiviey.class)); finish(); } } }; welcomeThread.start(); 

表现:

              

问题是如果我按下硬件HOME按钮隐藏应用程序并再次在应用程序列表中打开应用程序。 它将再次显示启动画面(而不是显示MainActivity )。 是否可以仅在应用程序启动“新鲜”时显示启动画面(不在onresume()中显示)? 谢谢!

是的,这是可能的。 使用SharedPreferences存储标志,表示您的启动已经显示。 在启动画面的onCreate()方法中检查它,如果它存在,则启动下一个活动。

你不能有这两个活动的意图:

      

此外,您可能希望隐藏历史堆栈中的启动画面,以防您根据Ash建议决定在其中启动另一个活动。

您可以在活动代码上使用此标记:

 android:noHistory="true"