概述
我们在谈Handler机制的时候,其实也就是谈Handler、Message、Looper、MessageQueue之间的关系,对于其工作原理我们不做详解(Handler机制详解)。
- Message:Handler发送、接收和处理的消息对象
- Looper:每个线程只能拥有一个Looper.它的looper()方法负责循环读取MessageQueue中的消息并将读取到的消息交给发送该消息的handler进行处理。
- MessageQueue:消息队列,它采用先进先出的方式来管理Message。程序在创建Looper对象时,会在它的构造器中创建MessageQueue。
Handler类的主要作用有两个:在新启动的线程中发送消息;在主线程中获取和处理消息。 而要完整的理解Handler机制,对于Looper的底层存储和轮询机制是必须了解的,看过了其实就很简单,今天就专门讲这个。
ThreadLocal详解为了方便大家理解,我们直接看源码:
public class ThreadLocal {
.....
}
这里可以看出threadlocal是一个范型类,这标志着threadlocal可以存储所有数据,作为存储数据来说,我们首先想到的是会对外提供set(),get(