Android App冷啟動 白屏/黑屏問題

KriHooton 7年前發布 | 9K 次閱讀 安卓開發 Android開發 移動開發

從桌面 launcher 的小圖標冷啟動 App 時會經常碰到白屏/黑屏的問題,大約幾百毫秒,然后才會跳轉到我們應用程序的第一個 Activity, 為什么會出現這種情況?

為什么會出現這種情況

當從桌面 Launcher 的小圖標點擊冷啟動一個 App 的時候,程序需要進行一些基本的初始化操作,如果不用一個 Preview Window 先加載出來,用戶可能就會覺得自己沒有點到 Launcher 上面的那個小圖標,所以系統會根據你 App 的主題來設置這個 Preview Window ,也就是白屏或者黑屏,如果你的主題是 Light 則是白屏,Dark 則是黑屏。

解決方案:

不顯示這個 Preview Window

既然是叫 Preview Window,那么肯定有一個開關來關閉這個 Window, 搜了一圈發現這個屬性叫 windowDisablePreview ,所以可以在主題中加入如下屬性來避免白屏/黑屏。

<item name="android:windowDisablePreview">true</item>

但是這種方法有個小缺點,就是點擊后短暫的那幾百毫秒沒有反應,就好像“假死”了一樣,過了一會兒才跳出我們應用程序的第一個Activity,如果你不想讓你的 App 有這個短暫“假死”時間,那么可以考慮用第二種解決方案。

用 windowBackground 來代替

大多數應用程序啟動的第一個頁面都是自家品牌的 logo,所以可以通過設置 windowBackground 這個屬性來解決,如下:

<item name="android:windowBackground">@drawable/your_logo_page</item>
<item name="android:windowFullscreen">true</item>
<item name="android:windowNoTitle">true</item>

用這種方式啟動后哦,Preview Window 的 windowBackground 就是我們 App 的 logo,所以一般也推薦這種方式。

 

來自:http://huxian99.github.io/2016/12/08/ciwgbt28l00009kxk2d70evae/

 

 本文由用戶 KriHooton 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!