Android学习笔记——Handler消息分发

Handler 消息分发

Handler事件分发机制是 基于生产者/消费者模型,使用Linux下的pipe(管道)实现的,读取和写入相互协调实现等待/通知。Handler机制是用于处理线程间消息分发的。

主要角色:

Handler(事件处理)、MessageQueue(消息队列)、Looper(消息循环)。
一个线程下可以有多个Handle,但只能拥有一个MessageQueue和一个Looper;每个Handle可以定义处理一类消息。

角色职责:

  • Handler:事件的分发和处理。将事件分发至该Handle所在线程下的消息队列;处理发送至该Handle所在线程并且递交给当前Handle的消息;Handler中含有MessageQueue和Looper的引用,含有Looper引用是为了表示该Handler所对应的Looper,从而关联MessageQueue 以便向MessageQueue中获取消息;

  • MessageQueue:消息对象的存储,入队和出队。消息对象里携带了该消息所对应的目标Handler,用于分发过程中标示信息传递终点。

  • Looper:消息的循环,不断监听MessageQueue队列,从队列中取出消息发送至相应的目标Hander。Looper中含有Thread 和MessageQueue的引用。Thread、MessageQueue引用是在prepare时完成,标识该消息循环的线程和其消息队列。 一旦prepare完成,即调用loop函数,进入消息循环过程,取出队列中的消息发送至目标Handler。

消息分发流程图

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值