不知道什么是冷启动的可以先自行百度了解一下什么是热启动什么是冷启动及区别。
我们在开发项目时,如果启动页不做任何处理会有一段时间白屏,因为系统在启动应用的时候一般会先打开window窗口,窗口的背景默认是白色。这就是为什么出现白屏的主要原因。
我这里是自定义了一个style
继承自AppTheme 添加Translucent属性,设置Translucent 这种透明主题,这样就看不见最先出来的白屏了
<?xml version="1.0" encoding="utf-8"?> <resources> <style name="Theme.AppStartLoadTranslucent" parent="Theme.ReCanApp"> <item name="android:windowIsTranslucent">true</item> <item name="android:windowNoTitle">true</item> </style> </resources>
然后在启动页中引用此主题
只不过也有一个缺陷就是用户可能会在桌面稍微等一小会,这个时间也就是原来白屏的显示时间,是应用从冷启动到启动的等待时间,虽然时间不长但是也可能会导致不太好的体验。
我们可以进一步优化,在启动进入首页前白屏一段时间让其显示一张图片,在自定义主题里加入一张图片。现在好多巨量APP也是这么做的,如京东在进入首界面前 会出现一张京东 logo
自定义style文件可以这样写,然后引用此主题即可
<?xml version="1.0" encoding="utf-8"?> <resources> <style name="Theme.AppStartLoadTranslucent" parent="Theme.ReCanApp"> <item name="android:windowNoTitle">true</item> <item name="android:windowBackground">@drawable/backgroundimage</item> <!-- 图片背景 --> </style> </resources>