Android啟動APP時黑屏白屏的解決方法
在開發(fā)中,我們在啟動app的時候,屏幕會出現(xiàn)一段時間的白屏或者黑屏,不同設(shè)備時間長短不同。很影響用戶體驗。
首先分析一下,產(chǎn)生這個現(xiàn)象的原因,當我們在啟動一個應用時,系統(tǒng)會去檢查是否已經(jīng)存在這樣一個進程,如果不存在,就是冷啟動。系統(tǒng)和APP本身都有很多工作需要處理。首先系統(tǒng)的服務(wù)會先檢查startActivity中的intent的信息,然后在去創(chuàng)建進程,最后才是執(zhí)行啟動Acitivy的操作。而我們上面提到的顯示白黑屏的問題,就是在這段時間內(nèi)產(chǎn)生的。
系統(tǒng)在繪制頁面加載布局之前,首先會初始化窗口(Window),而在進行這一步操作時,系統(tǒng)會根據(jù)我們設(shè)置的Theme來指定它的Theme 主題顏色,Window 布局的頂層時DecorView,StartingWindow顯示一個空DecorView,我們在Style中的設(shè)置就決定了顯示的是白屏還是黑屏。
最簡單的解決方法
既然黑白屏是根據(jù)我們設(shè)置的Theme來決定的,那我們就可以直接從啟動頁的Theme入手,解決這個問題。
第一步:在style文件中定義如下
<!--***************啟動頁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中設(shè)置啟動頁Theme
<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>
如上,我們給啟動頁設(shè)置一個全屏的背景圖片,這樣就不用顯示默認的主題顏色了。
按照以上配置,這樣就能避免白屏或者黑屏問題了。
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Android ExpandableListView雙層嵌套實現(xiàn)三級樹形菜單
這篇文章主要介紹了Android ExpandableListView雙層嵌套實現(xiàn)三級樹形菜單,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-11-11

