一、Handler简介
Handler机制主要分为4个部分:
- Handler
- Message
- MessageQueue(消息队列)
- Looper
工作原理:每一个事件都是一个Message,添加进消息队列后,如果处理时间到了,Looper就会从消息队列中拿出来该Message发送给Handler进行处理。示例图如下:
二、Handler简单使用
myHandler = new MyHandler(this);
mDown.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
new Thread(new Runnable() {
@Override
public void run() {
Message message = Message.obtain();
message.what = 1;
message.obj = "下载完成";
myHandler.sendMessage(message);
}
}).start();
}
});
private static class MyHandler extends Handler {
private WeakReference<MainActivity> mainActivityWeakReference;
public MyHandler(MainActivity mainActivity) {
mainActivityWeakReference = new WeakReference<>(mainActivity);
}
@Override
public void handleMessage(@NonNull Message msg) {
super.handleMessage(msg);
MainActivity mainActivity = mainActivityWeakReference.get();
switch (msg.what){
case 1:
if (mainActivity != null){
mainActivity.mDown.setText((String) msg.obj);
}
break<