定义和作用(官方术语)
Android提供的一套消息传递机制。
用于实现子线程对UI线程的更新,实现异步消息的处理:
在新启动的线程中发送消息
在主线程中获取并处理信息
简单的说就是:
主线程不能有耗时操作(例如 睡眠sleep 5s,向服务器请求接口(网络不好的情况下5s钟都没有请求完)),所以用子线程做这些操作,但是子线程不能更新UI,所以就有了Handler Looper Message Queue
通过下图可以清晰显示出UI Thread, Worker Thread, Handler, Massage Queue, Looper之间的关系:
looper 无限循环的取消息
handler.sendMessage(msg); 在子线程发消息
new Thread(new Runnable(){
@overrid
public void run(){
handler.sendMessage(msg);
}
}).start();
handlerMessage()方法接收消息
Handler handler = new Handler(){
@overrid
public void handlerMessage(Message msg ){
StringBuffer text = new StringBuffer();
switch (msg.what) {
case 1:
text.append("I love Carson_Ho");
show.setText(text);
break;
case 2:
text.append("I hate Carson_Ho");
show.setText(text);
break;
}
}
};