Looper:消息泵
作用:不断从消息队列中获取消息通过Handler的消息分发机制进行消息处理
MessageQueue:消息队列
作用:存储消息的,采用的队列的数据结构(先进先出)
Handler:消息处理者
作用:发送消息并且可以分发消息
Message:消息
作用:携带交互的数据
如果想进行线程间数据交互,我们就可以采用Handler进行操作
首先:对应的线程应该先创建Looper对象
Looper.prepare(一个线程只能有一个looper对象)
然后再实例化Handler对象,而且这个Handler就拥有当前线程的Looper对象和looper对象中的消息队列,实例化handler的时候就 决定了消息的分发机制
depattchMessage进行消息分发,优先分给Message.CallBack,不存在就 分发给
Handler.CallBack,不存在就分发给Handler的handleMessage
完成所需的handler的实例化之后调用Looper.loop开启消息的循环获取
loop方法就是不断的从当前的消息队列中获取将要发送的消息,然后调用对应的handler的消息分发。最后如果需要发送数据就使用上述实例化的handler对象调用对应的发送方法将消息添加等待着looper的循环获取
本文详细介绍了Android中Looper、Handler、MessageQueue等组件的工作原理及其交互方式,包括如何利用Handler实现线程间的数据传递。
819

被折叠的 条评论
为什么被折叠?



