App 冷啓動:給 Android 的 Activity 添加一個背景

2016/8/8 11:11:18 # 糾錯

以前寫的這篇內容的知識點有誤,給你們形成了誤導,深感抱歉。
android 中給 Activity 設置背景的方法是在 style 文件中設置 windowBackground 屬性,而非設置 background 屬性,若是你設置的是 background 屬性,那麼抱歉,你可能會遇到下面所說的這種狀況: Activity 的 layout 中全部佈局控件的背景全變成了 background 所指定的樣式。android


2016/7/11 14:06:22

最近在作項目優化,其中碰到一個問題:每次應用冷啓動的時候,會有一段時間的白屏,這種現象在低端機上更加明顯。微信

爲了解決這個問題,我首先是想到怎麼作冷啓動的優化(應用冷啓動這塊這裏先不展開講,後面會單獨整理出來一篇文章)。冷啓動的優化能夠從幾個方面入手,好比說:在App的Application類的onCreate方法中儘可能不要作比較重的操做,包括SharedPreference文件的額初始化等。。另外,可使應用每次不徹底關閉,修改用戶返回鍵的操做,減小應用冷啓動的次數(目前微信好像就是這麼作的)。佈局

回過頭來想一下,在我目前所作的這款App中,冷啓動優化要解決的其實就是去除應用在冷啓動狀況下有一段時間白屏的問題,那麼,咱們不妨從應用的背景圖片來考慮。優化

首先,設置應用第一個頁面的theme,這裏個人應用第一個頁面是SplashActivity,所以,我再AndroidManifest.xml文件中添加了android:theme的屬性。spa

而後,自定義屬性ActivitySplashTheme。個人ActivitySplashTheme繼承原來應用的style,在原來的基礎上,我添加了一個background屬性,並設置相應的背景圖片。code

<item name="android:background">@drawable/background</item>

到這裏就完成了。xml


什麼?!你說你的應用按照這樣設置以後,界面出現了意想不到的「效果」,各類佈局錯亂?!繼承

好吧,看來仍是沒搞明白style的用法、以及style中background屬性的意義。圖片

說一下個人作法吧,在上面說的那些內容修改以後還不行的狀況下,我給每一個控件都另外添加了background屬性it

android:background="@android:color/transparent"

好比,設置TextView的background,設置ImageView屬性等(你們注意一下ImageView的background屬性和src屬性,搞清楚他們的區別,這裏就再也不贅述)。

以上全部的屬性設置完畢後,跑一下應用,在冷啓動的狀況下,應用不會出現白屏的狀況,取而代之的是預設的背景圖騙。

好啦!到這裏,我針對本身項目中App啓動出現白屏的問題就已經解決了。方法可能不止一種,若是你們有其餘好的方法,也但願能跟我交流。

相關文章
相關標籤/搜索