Android启动APP时Splash页会黑白闪屏现象的原因与优化方法

目前APP的设计思路,都会有一个启动页,来进行一些数据的初始化等一些比较耗时的操作,这就会造成启动页短暂的黑白屏闪动(黑还是白取决于app的默认主题)。那为啥会出现这种现象,并且该怎么解决这一问题呢?


问题出现的原因

当系统启动一个APP时,zygote进程会首先创建一个新的进程去运行这个APP,但是进程的创建是需要时间的,在创建完成之前,界面是呈现假死状态的,这就很尴尬了,因为用户会以为没有点到APP而再次点击,这极大的降低用户体验,Android需要及时作出反馈去避免这段迷之尴尬。于是系统根据你的manifest文件设置的主题颜色的不同来展示一个白屏或者黑屏。而这个白屏或黑屏正式的称呼应该是Preview Window,即预览窗口。

好了,现在我们明白了,Preview Window其实是为了提高用户体验而有意设定的。因此,其实如果不是强迫症,他可能并不是一个问题。但是我是一个有强迫症的处女座:这个体验很是不好,该如何破呢?


解决方法

在style.xml文件中为启动页的SplashActivity设置主题,设置android:windowBackground属性为开启SplashActivity显示的闪屏图片,这样才会有APP秒开的效果;

需要设置android:windowFullscreen属性为true,使闪屏图片全屏显示;

设置windowNoTitle属性为true,隐藏SplashActivity的ActionBar显示。

Android启动APP时Splash页会黑白闪屏现象的原因与优化方法_第1张图片

然后,在Androidmanifest.xml中,为启动的SplashActivity设置主题AppLauncher:

Android启动APP时Splash页会黑白闪屏现象的原因与优化方法_第2张图片


注:Application的Theme设置不需要添加windowIsTranslucent属性!!

你可能感兴趣的:(android,总结)