一,作用:是用来做异步的
二,关键类的详细介绍
1,概念介绍:
handler负责发送消息,Looper负责接收Handler发送的消息,并直接把消息回传给Handler自己。MessageQueue就是一个存储消息的容器。
Message
· 定义:消息,理解为线程间通讯的数据单元(Handler接受和处理的消息对象。)
例如后台线程在处理数据完毕后需要更新UI,则可发送一条包含更新信息的Message给UI线程
Message Queue
通常翻译为“消息队列”,以队列的形式对外提供插入和删除操作。虽然被称之为消息队列,但是实际上它的数据结构却是采用的单链表的结构来存储消息列表(单链表在插入和删除操作上效率比较高)。
MessageQueue主要包含两个操作:插入(enqueueMessage)和读取(next)。
Handler
· 定义:对于handler来说工作主要是消息的发送和接收过程
.作用:负责将Message添加到消息队列&处理Looper分派过来的Message
Looper
定义:循环器,扮演Message Queue和Handler之间桥梁的角色
作用:主要负责消息循环:循环取出Message Queue的Message;消息派发:将取出的Message交付给相应的Handler
一个线程只会有一个Looper实例,同时一个Looper实例也只有一个MessageQueue
线程是默认没有Looper的,如果需要使用Handler,就必须为线程创建Looper。我们经常提到的主线程,也叫UI线程,它就是ActivityThread,
ActivityThread被创建时就会初始化Looper,这也是在主线程中默认可以使用Handler的原因。
2,相关方法介绍
2.1,Handl