您的位置:首页 > 移动开发

解决Android App第一次启动时显示白屏或者黑屏的问题

2017-02-20 17:45 716 查看
关于这个问题,首先得搞清楚一个概念,冷启动,所谓冷启动是指手指点下启动图标到第一个Activity界面调用onCreat方法之间的这段时间;那么在这一段时间内究竟是如何操作的?发生了什么导致白屏或者黑屏一段时间呢?

因为App在启动的时候会启动一个进程,在初始化的过程中,会消耗一部分时间,在这个时间里面WindowManager会先加载App里的主题样式里的窗口背景(windowBackground)预览,然后才去真正的加载布局,在这个时间里面因为默认的背景是白色或者黑色,所以会看到上面所述现象,要解决有两种方式

① 先在style.xml里面写对应的样式代码AppWelcome,把windowBackground替换成应用启动的第一个界面(此处的launch是我应用启动的第一张图片)

<style name="AppWelcome" parent="Theme.AppCompat.Light.NoActionBar">

<item name="android:windowBackground">@drawable/launch</item>

</style>


然后在AndroidManifest.xml里面找到启动的Activity,在标签里面配置刚才的AppWelcome样式,
android:theme="@style/AppWelcome"
就可以了

② 第二种是把背景设置成透明的,具体样式
<style name="AppWelcome" parent="android:Theme.Translucent.NoTitleBar.Fullscreen"/>
但是这样的效果会让人感觉启动慢、手机反应迟钝,不建议这样做,而且有问题,会报错

java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: