我想在應用程序生命週期中僅顯示一次啓動畫面。這裏是我的代碼:如何僅在應用程序啓動「新鮮」時才顯示啓動屏幕?
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