Android App 冷启动出现白屏或者黑屏问题的解决方案

tech2023-02-10  125

从桌面 Launcher 的小图标冷启动 App 时会经常碰到白屏或者黑屏的问题,大约1秒左右的时间,才会跳转到我们应用程序的第一个 Activity。

为什么会出现这种情况

当从桌面 Launcher 的小图标点击冷启动一个 App 的时候,程序需要进行一些基本的初始化操作,如果不用一个 Preview Window 先加载出来,用户可能就会觉得自己没有点到 Launcher 上面的那个小图标,所以系统会根据你 App 的主题来设置这个 Preview Window ,也就是白屏或者黑屏,如果你的主题是 Light 则是白屏,Dark 则是黑屏。

解决方案

不显示这个 Preview Window

这个属性叫 windowDisablePreview ,可以在主题中加入如下属性来避免白屏或者黑屏的出现。

<item name="android:windowDisablePreview">true</item>

但是这种方法有个小缺点,就是点击后短暂的那几百毫秒没有反应,就好像“假死”了一样,过了一会儿才跳出我们应用程序的第一个Activity,如果你不想让你的 App 有这个短暂“假死”时间,那么可以考虑用第二种解决方案。

用 windowBackground 来代替

可以通过设置 windowBackground 这个属性来解决,如下:

<item name="android:windowBackground">@drawable/logo_page</item> <item name="android:windowFullscreen">true</item> <item name="android:windowNoTitle">true</item>

windowBackground 属性相当于给主题设置了一个背景,用这种方式启动后,Preview Window 的背景就不会是白色或者黑色了。

最新回复(0)