Handler looper meessage messagequeue 之间的关系

本文详细解释了Looper、MessageQueue及Handler之间的关系。Looper将普通线程转变为循环工作线程,并在该线程中创建MessageQueue。Handler通过发送消息到MessageQueue并与Looper关联,实现了跨线程的消息传递。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

         前天面试的时候被问到了,所以按照自己的思路阐述一下她们的关系:

       looper 使一个普通线程变成looper线程也就是循环工作的线程,变成looper线程后,就会在looper线程中生成并维护一个消息队列也就是messagequeue,通过loop()方法不断从消息队列中取出消息也就是message,这个时候会有个很重要的方法,就是这个方法把handler联系到了一起,这个方法就是massage.target.dispatchmessage(),如何联系起来的呢,下面看一下handler的实现,handler的默认构造函数中会得到当前线程的looper对象,消息队列也就是当前线程looper的消息队列,当handler sendmessage的时候会调用msg.target = this(handler对象),就这样looper messagequeue message handler就联系到了一起。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值