什么是Handler?
作用:在子线程与主线程之间发送、接受、处理消息
一:主线程给子线程发送消息
Handler handler = new Handler();
Message message = new Message();
handler.sendMessage(message);
2.子线程
Looper.prepare();
hander = new Handler(){
public void handlerMessage(Message msg){
//接收
}
}
二:子线程给主线程发送
1发送消息
sendMessage(Message mes);//普通消息
sendMessageDelayed();//延时
sendMessageAtTime();//延时
2发送线程
post(Rnnable/Thread t);//普通发线程
postDelayed();//延时
postAtTime()//定时
三:Handler底层原理
Handler是一种机制,由looper,MessageQueque,Message构成。Looper负责循环收消息和分配消息,MessageQuequ用来存消息,Message消息的载体(本身)。
四.Message
属性:what消息号 arg1,arg2只能放int obj任意类型(自定义对象、集合)
五.Handler如何创建和收消息
1.创建 Handler handler = new Handler();
2.收消息 重写handleMessage方法 Hanler h = new Handler(){}
六.一个线程中可以有多个Handler对象,一个handler中只能一个Looper对象