Android app啓動時白屏

我們在打開一個APP時,肯定希望它能夠快速響應,然後快速啓動。而當我們首次啓動APP時,再到APP的第一個頁面展示出來之前,這段時間會有幾秒的白屏或者是黑屏出現。這樣給用戶的體驗是十分不好的。
之所以會出現這種情況,是因爲當我們在啓動一個應用時,系統會檢查是否已經存在這樣一個進程,如果沒有,Android系統會創建出一個新的進程分配給該應用,之後會依次創建和初始化Application類、然後啓動SplashActivity類的。而顯示白黑屏的問題就是在這段時間內產生的。
系統會在繪製頁面加載佈局之前 ,首先會初始化窗口(Window),而在進行這步操作時,系統會根據我們設置的Theme來指定它的Theme主題顏色。Window佈局的頂層是DecorView,StartingWindow顯示一個空的DecorView,進而我們在Style中的設置就決定了顯示的是白屏還是黑屏。

解決方法:

在應用要啓動的第一個頁面(即應用的啓動頁)中設置一個單獨的Theme主題。
   <activity
            android:name=".ui.SplashActivity"
            android:theme="@style/SplashTheme">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>

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

上面代碼中的android:theme="@style/SplashTheme" 指定了你的啓動頁的主題。

代碼如下:
 <!--歡迎界面主題-->
    <style name="SplashTheme" parent="AppTheme">
        <item name="android:windowBackground">@drawable/splash_speed</item>
    </style>

到此APP啓動時白屏的問題就搞定了!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章