外观
IdleHandler 是什么?
标准回答
IdleHandler 在消息队列暂时没有可立即处理的消息时得到调用,通常仍在所属 Looper 的线程执行。返回 false 移除,返回 true 保留。
关键机制
- 它不是简单把普通消息推到队尾,而是 MessageQueue 的空闲回调机制。
- 适合非关键、足够短的初始化;一旦开始执行,耗时工作同样会阻塞后续输入和绘制。
- 空闲时机没有稳定保证;需要可靠完成或精确时间的任务,不应只依赖它。
通俗例子
首屏完成后,在主线程空闲时注册一个很轻的观察者可以考虑 IdleHandler;读取大文件应放到受控的后台执行器。
易混淆点
IdleHandler 不保证“首帧显示以后”才运行。要以真实绘制或展示信号界定首帧,不能只看一次空闲回调。
参考资料
内容来源
- Android 技术札记 · 原条目
idle