Handler:多线程通信机制
相关资料:
https://blog.csdn.net/carson_ho/article/details/80305411
https://blog.csdn.net/carson_ho/article/details/80175876
https://www.bilibili.com/video/BV1j54y1H7Kj?from=search&seid=6749523411759852997
相关面试题:
https://blog.csdn.net/weixin_44819566/article/details/115619339
一.价值
用于在子线程和主线程(UI)线程之间进行通信的,一般将一些耗时操作放在子线程中执行,当产生一些UI更新数据,可通过handler将信息从子线程传递到主线程,从而更新UI。
问题:handler 实质就是线程之间的通信?其他的方式不可以吗,为什么非要弄个Handler来处理?
注意:资料中说可以解决UI更新并发操作的问题?不太明白这是啥?
白话:这个任务执行时间太长了,子线程你先干着,完成之后,你子线程发送到messageQueue 中,然后我主线程定期去看,如果你完成后了,我就接着你的做,
二. 架构图
该套系统,部署在主线程中。
问题:子线程是如何拿到主线程中的handler ,从而发送消息的?
三. 代码案例
子线程执行任务,并发送message
主线程中的handler接受到消息,并处理
四. handler post 方法详解
相关资料:https://blog.csdn.net/lfdfhl/article/details/40016085
实际上是对handler.sendMessage 方法的封装,从程序上看,好像就在子线程中完成了UI的更新
问题: 有sendMessage方法,为什么还要有个post方法?
答: https://cloud.tencent.com/developer/article/1727098