定義:一種消息傳遞機制
作用:多線程并發(fā)工作時,工作線程(子線程)將UI更新的額消息發(fā)送到主線程袍榆,實現(xiàn)子線程對UI的更新。
用法:Handler發(fā)送消息的方式有兩種宿崭,Handler.sendMessage()和Handler.post();
方法一:
Handler.sendMessage()
1.繼承Handler類才写,實例化Handler對象:
/*實例化handler對象*/
class mHandler extends Handler {
public mHandler() {
}
@Override
public void handleMessage(@NonNull Message msg) {
/* ................. 執(zhí)行操作*/
super.handleMessage(msg);
}
};
private Handler myhandler;
/*創(chuàng)建消息對象*/
Message message=Message.obtain();
/* 發(fā)送消息*/
public void send(){
myhandler=new mHandler();
myhandler.sendMessage(message);
}
2.創(chuàng)建Handler匿名內(nèi)部類:
private Handler mHandler2 =new Handler(){
@Override
public void handleMessage(@NonNull Message msg) {
/* ................. 執(zhí)行操作*/
super.handleMessage(msg);
}
};
/*創(chuàng)建消息對象*/
Message message2=Message.obtain();
/* 發(fā)送消息*/
public void send2(){
mHandler2.sendMessage(message);
}
方法二:
Handler.post()
/*實例化handler對象*/
class mHandler extends Handler {
public mHandler() {
}
@Override
public void handleMessage(@NonNull Message msg) {
/* ................. 執(zhí)行操作*/
super.handleMessage(msg);
}
};
private Handler myhandler;
/*創(chuàng)建消息對象*/
Message message=Message.obtain();
/* 發(fā)送消息*/
public void send3(){
myhandler=new mHandler();
myhandler.post(new Runnable() {
@Override
public void run() {
}
});
}