當打開一個Activity時,如果這個Activity所屬的應用還沒有在運行,系統會爲這個Activity所屬的應用創建一個進程,但進程的創建與初始化都需要時間,在這個動作完成之前系統要創建一個StartingWindow(也可以稱之爲Preview Window),當程序初始化完成後顯示用戶UI並移除這個窗口。
顯示白屏或者黑屏,是由你的啓動Activity或者Application的主題來決定的。如果你使用的是Light主題,那麼就可能出現白屏;如果你使用的是Black主題,那麼就可能出現黑屏。當你設置Light或者Black主題時,Starting Window顯示的就是你啓動Activity的android:windowBackground屬性,所以纔會出現白屏或者黑屏的情況。
解決方案:給LaunchingActivity的主題的windowBackground設置一個圖片
<activity
android:name=".ui.launching.SampleLaunchingActivity"
android:screenOrientation="portrait"
android:theme="@style/LaunchingTheme">
<!-- 防止啓動頁白屏,設置圖片 -->
<style name="LaunchingTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:windowBackground">@drawable/activity_launching_bac</item>
<item name="android:windowFullscreen">true</item>
</style>it