参考博客:
https://juejin.im/post/58ad90518ac2472a2ad9b684
原因:
应用启动分为冷启动和热启动:
1. 冷启动:需要创建新的进程所需时间较长(从launcher启动);
2. 热启动:进程已经创建时间较短(back键,home键,应用退出,但是没有销毁)。
当系统冷启动一个APP时,zygote进程会首先创建一个新的进程去运行这个APP,但是进程的创建是需要时间的,在创建完成之前,界面是呈现假死状态的,这就很尴尬了,因为用户会以为没有点到APP而再次点击,这极大的降低用户体验,Android需要及时做出反馈去避免这段迷之尴尬。于是系统根据你的manifest文件设置的主题颜色的不同来展示一个白屏或者黑屏。而这个黑(白)屏正式的称呼应该是Preview Window,即预览窗口。
解决方法:
方案一:禁止预览窗口的出现
<item name="android:windowDisablePreview">true</item>
方案二:为预览窗口加一个背景图片
因为预览窗口的背景和第一个启动的Activity的主题背景相同,所以只需要为启动的Activity加一个背景即可
<item name="android:windowBackground"></item>
方案三:
[app冷启动缓慢出现白屏之终极解决方案—IntentService高效异步处理]
异步初始化一些东西
网友评论