android下的消息机制
//1.定义一个消息处理器(秘书)
private Handler handler = new Handler(){
//2.利用秘书给老板发消息,让主线程更新ui
Message msg = new Message();
msg.obj ="嘎嘎,哈哈哈,呱呱呱----"+i;
handler.sendMessage(msg);
private Handler handler = new Handler(){
//3.秘书处理消息的方法
@Override
public void handleMessage(Message msg) {
String text = (String) msg.obj;
tv.setText(text);
super.handleMessage(msg);
}
};
- 子线程不可以修改ui
- 只有主线程才可以修改ui
- 如果子线程想更新ui就必须利用消息机制处理
- Handler:消息处理器,可以发送消息给主线程的消息队列
- Message Queue :消息队列,主线程里面的一个消息队列
- looper:轮询器,检查消息队列里面是否有消息
理解(子线程要在主线程中显示数据)
- 子线程去找主线程中的Handler,将消息放进Message Queue中
- 主线程有个looper,系统自动调用,看Message Queue中的数据
- 有数据就取出来显示