Android冷启动白屏解决方案

1.什么是冷启动

冷启动其实就是应用第一次启动,或者说启动之后后台被杀掉了又重新启动app的情况.比如小米通过菜单键杀掉应用后台,重新启动app.

应用冷启动的时候其实会在Application做一些初始化工作,大部分第三方都是在Application初始化的.初始化完才会启动SplashActivity做初始化工作,然后才是进入MainActivity.这其中看起来很简单,其实可以对app的体验优化做很多文章...

2.冷启动为什么会有一段白屏

  1. 系统本身加载带来的耗时

  2. Application初始化工作.其实上面已经说了,当应用冷启动的时候Application先做初始化工作,导致了SplashActivity无法及时初始化,也就没东西显示出来.

  3. SplashActivity的OnCreate中存在耗时操作,或者布局过于复杂导致布局解析耗时过久.

3.解决办法

  1. 优化Application中的逻辑.使用异步加快进入SplashActivity,用事务总线(Eventbus,otto)延迟加载.

  2. 使用异步处理SplashActivity的OnCreate中的逻辑

  3. 但是这种处理其实还是会有一小段白屏或者黑屏,这是系统本身初始化工作导致的,无法避免...那么为什么QQ,微信不会呢?

这时候我们只需要给启动页添加一个主题Theme


 

            
                

                
            
        

你可能感兴趣的:(Android冷启动白屏解决方案)