定义:一种消息传递机制
作用:多线程并发工作时,工作线程(子线程)将UI更新的额消息发送到主线程,实现子线程对UI的更新。
用法:Handler发送消息的方式有两种,Handler.sendMessage()和Handler.post();
方法一:
Handler.sendMessage()
1.继承Handler类,实例化Handler对象:
/*实例化handler对象*/
class mHandler extends Handler {
public mHandler() {
}
@Override
public void handleMessage(@NonNull Message msg) {
/* ................. 执行操作*/
super.handleMessage(msg);
}
};
private Handler myhandler;
/*创建消息对象*/
Message message=Message.obtain();
/* 发送消息*/
public void send(){
myhandler=new mHandler();
myhandler.sendMessage(message);
}
2.创建Handler匿名内部类:
private Handler mHandler2 =new Handler(){
@Override
public void handleMessage(@NonNull Message msg) {
/* ................. 执行操作*/
super.handleMessage(msg);
}
};
/*创建消息对象*/
Message message2=Message.obtain();
/* 发送消息*/
public void send2(){
mHandler2.sendMessage(message);
}
方法二:
Handler.post()
/*实例化handler对象*/
class mHandler extends Handler {
public mHandler() {
}
@Override
public void handleMessage(@NonNull Message msg) {
/* ................. 执行操作*/
super.handleMessage(msg);
}
};
private Handler myhandler;
/*创建消息对象*/
Message message=Message.obtain();
/* 发送消息*/
public void send3(){
myhandler=new mHandler();
myhandler.post(new Runnable() {
@Override
public void run() {
}
});
}