其实,从这里就可以看出来,Handler 的延时消息是如何实现的了 。
比方说 发送一个延时10s的消息,那么在 next()方法是,会阻塞 (10s + 发送消息时的系统开机时间 – 执行next()方法是系统的开机时间),到达阻塞时间时会唤醒 。或者这时候有新的消息来了也会 根据 mBlocked = true来唤醒 。
IdleHandler是什么?在 MessageQueue 类中有一个 static 的接口 IdleHanlder:
public static interface IdleHandler {boolean queueIdle();}当MessageQueue中无可处理的Message时回调; 作用:UI线程处理完所有事务后,回调一些额外的操作,且不会堵塞主进程;
【android延迟执行优化 安卓开机自启动管理】接口中只有一个 queueIdle() 函数,线程进入堵塞时执行的额外操作可以写这里,返回值是true的话,执行完此方法后还会保留这个IdleHandler,否则删除 。
推荐阅读
- 买口罩怎么认准执行标准号
- 疫苗第二针最晚可以延迟多久打
- 死刑缓期两年执行的司法规定 什么叫缓刑两年执行呢
- 五月一号开始执行的医保新政你理解清楚了吗
- 2021年工龄工资国家规定 工龄工资国家规定及执行标准
- 9月份开学会不会延迟 2022年9月份能正常开学吗
- windows批处理命令 批处理执行cmd命令
- 2022年可以提前退休吗什么情况下可以提前退休 2022年能实行延迟退休吗
- Java怎样对MongoDB执行SQL
- 新冠预防对策,京都、兵库都撤销了人事限制,东京都由4人放宽聚餐人数到8人,大阪还继续要求一桌4人以内12月后也继续执行的方针
