以前写的这篇内容的知识点有误,给你们形成了误导,深感抱歉。
android 中给 Activity 设置背景的方法是在 style 文件中设置 windowBackground 属性,而非设置 background 属性,若是你设置的是 background 属性,那么抱歉,你可能会遇到下面所说的这种状况: Activity 的 layout 中全部布局控件的背景全变成了 background 所指定的样式。android
最近在作项目优化,其中碰到一个问题:每次应用冷启动的时候,会有一段时间的白屏,这种现象在低端机上更加明显。微信
为了解决这个问题,我首先是想到怎么作冷启动的优化(应用冷启动这块这里先不展开讲,后面会单独整理出来一篇文章)。冷启动的优化能够从几个方面入手,好比说:在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启动出现白屏的问题就已经解决了。方法可能不止一种,若是你们有其余好的方法,也但愿能跟我交流。