一、线程概述
1、在android中,只有在ui Thread中才能直接更新界面
ui Thread又叫main Thread、主线程
2、在android中,长时间的工作(联网)都需要在workerThread中执行
workerThread又叫分线程、子线程
3、在分线程获得服务器数据后,需要立即到主线程去更新界面显示数据(切换到主线程)
4、如何实现线程间通信呢,用消息机制
二、消息机制
1、Message
(1)可理解为线程间通讯的数据单元,可通过Message携带需要的数据
(2)创建对象
Message.obtain(what)
(3)封装数据
2、Handler
(1)Handler是Message的处理器,同时也负责消息的发送和移除的工作
(2)发送即时消息:sendMessage(Message msg)
(3)发送延时消息:sendMessageDelayed(Message msg, long time)
这里延迟是延迟处理,处理时间=当前时间+延迟时间
(4)处理消息(回调方法):handleMessage(Message msg)
(5)移除还未处理的消息:removeMessages(int what)
3、MessageQueue
(1)消息队列,用来存放通过Handler发送的消息
(2)它是一个按照Message的when排序的优先级队列
4、Looper
(1)钩子,循环器
(2)负责循环取出MessageQueue里面的当前需要处理的Message
(3)交给对应的Handler进行处理
(4)处理完后,将Message缓存到消息池中(线程池),以备复用
5、原理图

