Android启动优化之IdleHandler

在Android中,为了提升用户体验,避免在UI显示时进行耗时操作。本文探讨了如何在UI真正测绘完毕后,利用IdleHandler在Looper消息队列空闲时执行耗时任务,从而实现启动优化。内容包括IdleHandler的工作原理及其在启动优化中的应用。
摘要由CSDN通过智能技术生成

学习自:https://juejin.im/post/5a6fd7b86fb9a01ca47ac6e8


假想网络很差的这样一个场景,我们非得等网络请求到位以后才更新UI的数据吗?一直给以一个waiting dialog必然极其影响用户体验。所以,我们需要显示预数据,可以是你预定义的默认数据,也可以是用户之前使用过的我们偷偷IO缓存下来的数据。

这证明了一个道理:我们需要在UI显示后,再进行耗时操作。(讲的比较牵强,不过就是这么个道理)


我们需要找到UI真正测绘完毕的时机,如果想深究UI测绘时机的源码,可以看

https://blog.csdn.net/qq_36523667/article/details/79671718

这里简单告诉你下结论:

在resume的过程中,我们的decor 会被添加到phone window中去

add后,view的测绘就会被调用


所以我们需要拿到这个被调用的时机。

在view被调用的过程中,一个msg会被抛出到looper中执行,在activity活动生命周期中,会不断有msg被抛出,来执行活动的生命周期。

我们有一个黑科技叫IdleHandler,他在所有looper中的msg被处理完后,能够得到回调。显然,这就是我们想要的东西。


所以正确做法:


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值