Android 啓動APP時黑屏白屏的解決方案

在開發中,咱們在啓動app的時候,屏幕會出現一段時間的白屏或者黑屏,不一樣設備時間長短不一樣。很影響用戶體驗。 
首先分析一下,產生這個現象的緣由,當咱們在啓動一個應用時,系統會去檢查是否已經存在這樣一個進程,若是不存在,就是冷啓動。系統和APP自己都有不少工做須要處理。首先系統的服務會先檢查startActivity中的intent的信息,而後在去建立進程,最後纔是執行啓動Acitivy的操做。而咱們上面提到的顯示白黑屏的問題,就是在這段時間內產生的。android

系統在繪製頁面加載佈局以前,首先會初始化窗口(Window),而在進行這一步操做時,系統會根據咱們設置的Theme來指定它的Theme 主題顏色,Window 佈局的頂層時DecorView,StartingWindow顯示一個空DecorView,咱們在Style中的設置就決定了顯示的是白屏仍是黑屏。app

最簡單的解決方法 
既然黑白屏是根據咱們設置的Theme來決定的,那咱們就能夠直接從啓動頁的Theme入手,解決這個問題。佈局

第一步:在style文件中定義以下ui

    <!--***************啓動頁Theme***************-->

    <style name="Theme.Splash" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="windowNoTitle">true</item>
        <item name="android:windowContentOverlay">@null</item>
        <item name="android:windowBackground">@drawable/splash_pic</item>
        <item name="android:windowFullscreen">true</item>
    </style>

第一步:在AndroidManifest中設置啓動頁Themespa

     <activity
            android:name=".ui.SplashActivity"
            android:theme="@style/Theme.Splash"
            android:screenOrientation="portrait">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

如上,咱們給啓動頁設置一個全屏的背景圖片,這樣就不用顯示默認的主題顏色了。 
按照以上配置,這樣就能避免白屏或者黑屏問題了。code

相關文章
相關標籤/搜索