线程分为主线程和子线程。主线程只有一个,主要负责控制UI界面的显示、更新和控件交互,所以又叫UI线程。子线程可以有多个。
Handler主要接收子线程发送的数据,并用此数据配合主线程配合更新UI,用来跟UI主线程进行交互。
Handler、Looper、MessageQueen、Message的关系如下:
Message: Handler接收和处理的消息对象。
MessageQueen: 存储消息对象的队列。
Looper: 每个线程只有一个Looper,他负责管理MessageQueue,会不断的从MessageQueue取出消息,分发给对象 的handler。
MessageQueue的作用:由Looper管理,而MessageQueue则采用先进的方法来管理Message!
Handler:发送消息和处理消息。
Handler工作原理:
由Looper不断的从MessageQueue取出消息,分发给对象 的handler,由handler进行处理完成后,再把消息发送MessageQueue。