1.APP启动,Android系统会启动一个主线程(UI线程),主线程负责管理UI界面的控件,事件处理分发。例如,如果单击界面的Button,Android分发事件到Button上面,并执行对应响应操作。如果执行操作是比较耗时,比如访问网站下载数据,并获得的数据显示在UI界面,常常会产生假死现象(5s还没完成),Android系统会强制关闭。这时一般会把耗时操作放在子线程完成,更新UI是在主线程完成。
2.Handler:Android异步回调机制,负责主线程与子线程通信。 一般主线程触发子线程的创建,主线程创建Handler对象。子线程完成耗时操作后,会向主线程发送消息,主线程接收消息,并对UI进行更新。
(1)Message 消息:线程之间数据传递
(2)Handler 消息处理者:发送消息: sendMessage() ## 处理消息:handleMessage()
(3)MessageQueue 消息队列:存放消息,先进先出 ## (4)Looper 消息循环:消息管家、取出消息并分发到主线程