Handler

首先Handler 是一个消息分发对象。而消息分发,有赖于消息循环器,也就是 Looper。在一个线程中,Looper 阻塞线程,等待消息构成循环,有了消息,分配到对应的 Handler,让他进一步分发处理。

Handler遵循先进先出原则,Looper则是用管理线程间对象的消息交换

Looper: 一个线程可以产生一个Looper对象,由它来管理此线程里的MessageQueue(消息队列),将MessagQueue中的消息分发给Handler处理。

Handler: 你可以构造Handler对象来与Looper沟通,以便push新消息到MessageQueue里;或者接收Looper从MessageQueue取出)所送来的消息。

Message:消息(数据载体)。

Message Queue(消息队列):用来存放线程放入的消息。 

线程:UIthread 通常就是main thread,而Android启动程序时会替它建立一个MessageQueue。

1)Handler创建对象时会关联一个Looper对象

2)Handler从Message回收队列中获取消息

3)Handler发送消息到Looper(Message被添加到Looper队列中)

4)Looper的消息队列发现有新的消息后 把消息给Hanlder的handlermessage方法执行消息

再说主线程Looper对象在创建时会调用一个prepareMainLooper方法创建一个MainLooper对象


子线程Looper对象在创建时会调用prepare方法创建子线程Looper对象,prepare方法在调用时会关联子线程、创建MessageQueue消息队列





【内容整理自网络,如有侵权,告知即删】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值