关于这个问题,首先得搞清楚一个概念,冷启动,所谓冷启动是指手指点下启动图标到第一个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.
解决Android App第一次启动时显示白屏或者黑屏的问题
最新推荐文章于 2024-10-12 17:02:33 发布