项目中遇到从桌面 launcher 的小图标冷启动 App 时会经常碰到白屏/黑屏的问题,大约几百毫秒,然后才会跳转到我们应用程序的第一个 Activity, 为什么会出现这种情况?
原因
当从桌面 Launcher 的小图标点击冷启动一个 App 的时候,程序需要进行一些基本的初始化操作,例如在Application 或者MainActivty中做了很多耗时操作,例如初始化第三方SDK等,当手机性能不好,配置不高时,这种现象尤其明显。
如果不用一个 Preview Window 先加载出来,用户可能就会觉得自己没有点到 Launcher 上面的那个小图标,所以系统会根据你 App 的主题来设置这个 Preview Window ,也就是白屏或者黑屏,如果你的主题是 Light 则是白屏,Dark 则是黑屏。
关于从Launcher启动App的过程分析参见老罗的这篇博客。
http://blog.csdn.net/luoshengyang/article/details/6689748
解决方案
不显示这个 Preview Window
既然是叫 Preview Window,那么肯定有一个开关来关闭这个 Window, 搜了一圈发现这个属性叫 windowDisablePreview ,所以可以在主题中加入如下属性来避免白屏/黑屏。
<item