1、问题描述
主要是在加载webView时Html5加载过慢导致有白屏,并且加载时间过长。这样给用户的体验是十分不好的。
2、问题出现的原因:
当我们在启动一个应用时,系统会检查是否已经存在这样一个进程,如果没有,Android系统会创建出一个新的进程分配给该应用,之后会依次创建和初始化Application类、然后启动SplashActivity类的。而显示白黑屏的问题就是在这段时间内产生的。
系统会在绘制页面加载布局之前 ,首先会初始化窗口(Window),而在进行这步操作时,系统会根据我们设置的Theme来指定它的Theme主题颜色。Window布局的顶层是DecorView,StartingWindow显示一个空的DecorView,进而我们在Style中的设置就决定了显示的是白屏还是黑屏。所以,在theme设置windowBackground就可以解决启动时白屏黑屏一会儿了,下面是我的解决方案:
一、提供.png背景图
可以在进入app时提供一个背景图片,这样会在显示时显示我们的背景图片而不是黑白屏。这个要解决适配各种屏幕、以及需要设置样式为透明背景。
二、为启动页单独设置一个Theme主题
我首先是把所有的耗时操作都放在异步执行,主线程只加载布局。这样下来会大大加快应用的启动速度,减少白屏时间。然后我采用了设置背景图片的方法解决白屏。这样我的应用在进入app是不会再有白屏,并且打开速度也很快。
2019-01-09 更新
昨天领导给出新思路,把轮播图和欢迎页以及webview同时写在一个activity上。这样会大大缩短白屏时间。并且可以使webview提前异步加载。