App啟動優(yōu)化绢彤,防止黑白屏

問題描述

app啟動時,會出現(xiàn)一會兒的黑屏或者白屏才進入Activity的界面顯示蜓耻,但是有些app卻不會茫舶,比如QQ,微信刹淌,微博等饶氏?

探究原因

當(dāng)打開一個Activity時讥耗,如果這個Activity所屬的應(yīng)用還沒有在運行,系統(tǒng)會為這個Activity所屬的應(yīng)用創(chuàng)建一個進程疹启,但進程的創(chuàng)建與初始化都需要時間古程,在這個動作完成之前系統(tǒng)要做什么呢?如果沒有任何反應(yīng)的話喊崖,如果程序初始化的時間很長挣磨,用戶可能還以為沒有點到相應(yīng)的位置。但此時所啟動的程序還沒初始化完荤懂,既無法顯示程序茁裙,又不能停在原處不做任何動作,怎么辦节仿?這就有了Starting Window的概念晤锥,也可以稱之為Preview Window。

Starting Window就是一個用于在應(yīng)用程序進程創(chuàng)建并初始化成功前顯示的臨時窗口廊宪,擁有的Window Type是TYPE_APPLICATION_STARTING矾瘾。在程序初始化完成前顯示這個窗口,以告知用戶系統(tǒng)已經(jīng)知道了他要打開這個應(yīng)用并做出了響應(yīng)箭启,當(dāng)程序初始化完成后顯示用戶UI并移除這個窗口壕翩。

顯示白屏或者黑屏,是由你的啟動Activity或者Application來決定的傅寡。如果你使用的是Light主題放妈,那么就可能出現(xiàn)白屏;如果你使用的是Black主題赏僧,那么就可能出現(xiàn)黑屏。當(dāng)你設(shè)置Light或者Black主題時扭倾,Starting Window顯示的就是你啟動Activity的android:windowBackground屬性淀零,所以才會出現(xiàn)白屏或者黑屏的情況。

解決方案

通過上述的原因探究膛壹,我們一想“哎呀驾中,尼瑪?shù)模瓉斫鉀Q方案不是TMD很簡單嘛模聋,就是給啟動的activity添加一個指定的主題嘛肩民!”,是的链方,我們的解決方案就是添加一個主題持痰。

第一步 新建一個主題

在styles.xml文件中添加一個主題,我們就叫“SplashTheme”好吧

  <style name="SplashTheme" parent="AppTheme">
        <!-- 歡迎頁背景引用剛才寫好的 -->
        <item name="android:windowBackground">@drawable/splash_lancher</item>
        <item name="android:windowFullscreen">true</item>
        <!-- <item name="android:windowIsTranslucent">true</item> --> <!-- 透明背景不要了 -->
    </style>

第二步 添加一個layer-list

上述主題中我們發(fā)現(xiàn)android:windowBackground 似乎少了點什么祟蚀,對嘛工窍,我們少了個drawable割卖,這個drawable我們可以直接用一個圖片代替,如果你還要加點其他東東患雏,我們當(dāng)然推薦使用layer-list來創(chuàng)建一個drawable的文件了鹏溯,示例如下:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
    <!-- 設(shè)置整個屏幕背景為白色 -->
    <item >
        <color android:color="@color/white"/>
    </item>
 
    <!-- 中間logo -->
    <item >
        <bitmap
            android:gravity="center"
            android:src="@drawable/ic_launcher" />
    </item>
    <!-- 底部圖表 -->
    <item android:bottom="10dp">
        <bitmap
            android:gravity="bottom|center_horizontal"
            android:src="@drawable/copyright" />
    </item>
 
</layer-list>

第三步 在AndroidManifest.xml中調(diào)用主題
在我們的啟動activity中添加如下代碼

        <activity
            android:name=".activity.SplashActivity"
            <--這里是我們添加的主題->
            android:theme="@style/SplashTheme">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

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

然后就大功告成了

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市淹仑,隨后出現(xiàn)的幾起案子丙挽,更是在濱河造成了極大的恐慌,老刑警劉巖匀借,帶你破解...
    沈念sama閱讀 210,914評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件颜阐,死亡現(xiàn)場離奇詭異,居然都是意外死亡怀吻,警方通過查閱死者的電腦和手機瞬浓,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評論 2 383
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蓬坡,“玉大人猿棉,你說我怎么就攤上這事⌒伎龋” “怎么了萨赁?”我有些...
    開封第一講書人閱讀 156,531評論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長兆龙。 經(jīng)常有香客問我杖爽,道長,這世上最難降的妖魔是什么紫皇? 我笑而不...
    開封第一講書人閱讀 56,309評論 1 282
  • 正文 為了忘掉前任慰安,我火速辦了婚禮,結(jié)果婚禮上聪铺,老公的妹妹穿的比我還像新娘化焕。我一直安慰自己,他們只是感情好铃剔,可當(dāng)我...
    茶點故事閱讀 65,381評論 5 384
  • 文/花漫 我一把揭開白布撒桨。 她就那樣靜靜地躺著,像睡著了一般键兜。 火紅的嫁衣襯著肌膚如雪凤类。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,730評論 1 289
  • 那天普气,我揣著相機與錄音谜疤,去河邊找鬼。 笑死,一個胖子當(dāng)著我的面吹牛茎截,可吹牛的內(nèi)容都是我干的苇侵。 我是一名探鬼主播,決...
    沈念sama閱讀 38,882評論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼企锌,長吁一口氣:“原來是場噩夢啊……” “哼榆浓!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起撕攒,我...
    開封第一講書人閱讀 37,643評論 0 266
  • 序言:老撾萬榮一對情侶失蹤陡鹃,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后抖坪,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體萍鲸,經(jīng)...
    沈念sama閱讀 44,095評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,448評論 2 325
  • 正文 我和宋清朗相戀三年擦俐,在試婚紗的時候發(fā)現(xiàn)自己被綠了脊阴。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,566評論 1 339
  • 序言:一個原本活蹦亂跳的男人離奇死亡蚯瞧,死狀恐怖嘿期,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情埋合,我是刑警寧澤备徐,帶...
    沈念sama閱讀 34,253評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站甚颂,受9級特大地震影響蜜猾,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜振诬,卻給世界環(huán)境...
    茶點故事閱讀 39,829評論 3 312
  • 文/蒙蒙 一蹭睡、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧赶么,春花似錦肩豁、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,715評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽洪规。三九已至印屁,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間斩例,已是汗流浹背雄人。 一陣腳步聲響...
    開封第一講書人閱讀 31,945評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人础钠。 一個月前我還...
    沈念sama閱讀 46,248評論 2 360
  • 正文 我出身青樓恰力,卻偏偏與公主長得像,于是被迫代替她去往敵國和親旗吁。 傳聞我的和親對象是個殘疾皇子踩萎,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,440評論 2 348

推薦閱讀更多精彩內(nèi)容