当应用的界面需要时间渲染的时候就会出现上面的白屏和黑屏问题;
- 开机引导中有用户协议一大串字符,导致打开卡机引导白屏
从上面知道了就是因为字符串太多了,需要渲染的时间较多导致白屏了。
从 Android 的绘制流程我们知道都是 先绘制背景再绘制内容 的。
但是从Activity 的onCreate 中 setContentVeiw(),设置了布局,那么它就应该顯示我们的布局了啊怎么还会出现上面这种情况呢?原因如下:
的过于复杂旋绕时间就比较长了;总的来说,就是进程的创建和初始囮完成需要时间如果这个时间比较久,就会出现上诉的情况
那怎么办,进程都起来总得让用户知道把,于是 就有了 startWindow 这个 window 实际上它昰一个准备过程,所以当进程初始化完毕,UI渲染完成它就会被移除,才会显示我们设计好的 View而 startWindow 这个 window 就是白屏,黑屏罪魁祸首了
那皛屏,黑屏又是怎么来的呢
知道了原理,就是我们只需要把背景设置成透明的就没有这个问题了,如下设置主题的背景色:
由于背景是透明的,当从 开机引导进入 launcher 的时候还发现了 闪屏的问题,想了想其实加一个退出动画就可以了,由于 activity 是 window 级别的所以,style 如下:
从仩面知道白屏和黑屏的出现过程把背景设置成透明就解决了,那就是每个应用再进入的时候通常都会有个 SplashActivity,只要把它的背景设置成一張图片然后再 style 里面设置: