1、只有主线程才能更新UI
2、Message Queue(消息队列)
随着主线程的创建而创建,用于存放消息
3、Looper(轮询器)
随着主线程的创建而创建,用于轮询Message Queue中的消息
4、Handler
消息处理器,利用handleMessage()来处理消息
主线程创建的时候,会创建Message Queue、Lopper,Looper会不间断的轮询Message Queue队列中有没有新消息,当子线程使用主线程创建的Handler对象来发送消息时,Looper发现队列中有新消息,会将消息传递给主线程的Handler对象处理,总之,只要消息队列里面有消息,Handler的handleMessage方法就会执行。
示例图如下: