Handler,Looper,Message

1. Handler在创建实例时,会关联一个Looper对象,这个Looper对象是它对应线程的变量拷贝 - ThreadLocal变量的一员,当它sendMessage()的时候,会将Message.taget设置自身Handler对象并加入到LooperMessageQueue中,等待消息循环。

2. Looper管理了一个MessageQueue,线程的run()方法中会调用Looper.loop(),一直循环地从MessageQueue中取出Message,从而使得线程成为Looper线程,每次取出Message后都会调用Message.taget.dispathMessage(msg)而间接地调用Handler.handlMessage()方法。

3. Message通过设置的Bundle对象,然后由在一个线程中的Handler实例sendMessage()Message加入到Looper对应的线程中的MessageQueue进行事件循环,从而实现了数据的线程间通信。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值