我想在应用程序生命周期中仅显示一次启动画面。这里是我的代码:如何仅在应用程序启动“新鲜”时才显示启动屏幕?
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();
清单:
<activity android:name=".SplashScreenActivity" android:label="test"
android:noHistory="true"
android:screenOrientation="portrait" android:configChanges="orientation|keyboardHidden|keyboard">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".MainActiviey" android:label="test"
android:screenOrientation="portrait"
android:configChanges="orientation|keyboardHidden|keyboard">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
的问题是,如果我再次按下硬件HOME钮隐藏应用程序,并打开App在应用列表。它会再次显示启动画面(而不是显示MainActivity
)。 只有当应用程序启动“新鲜”(不显示onresume())时才可以显示启动画面吗?谢谢!
但他必须确保当应用程序终止,这并不总是可以控制取消设置标志... – LouieGeetoo
我想“应用程序生命周期”作者指出,在安装之后,启动画面只能显示一次。很难确定应用何时终止,是真的。但之后再次显示启动画面会提供不良的用户体验。用户不知道Android什么时候决定终止应用程序,从他的迫害中,这个初始屏幕会显得非常随机。这不是很烦人吗? – Ash
我同意你的看法,即启动画面通常很烦人和不必要(除非他们掩盖了一些必要的背景加载)。不幸的是,在这种情况下,我认为提问者是指每次应用程序开始“新鲜”(即未被恢复)时显示启动画面的惯例。 – LouieGeetoo