文章预览
前言
andler扮演了往MQ上添加消息和处理消息的角色(只处理由自己发出的消息),即通知MQ它要执行一个任务(sendMessage),并在loop到自己的时候执行该任务(handleMessage),整个过程是异步的。handler创建时会关联一个looper,默认的构造方法将关联当前线程的looper
参考文章
https://www.cnblogs.com/theo/p/10976192.html
https://www.cnblogs.com/wangjie1990/p/11310639.html
一、Handler简单使用
package cn.zzuli.mywebview;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.widget.Toast;
public class HandlerActivity2 extends AppCompatActivity {
private Handler mHandler;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_handler2);
/**
* 延时3秒跳转
*/
// mHandler = new Handler();
// mHandler.postDelayed(new Runnable() {
// @Override
// public void run() {
// Intent intent = new Intent(HandlerActivity2.this,MainActivity.class);
// startActivity(intent);
// }
// }, 3000);
mHandler = new Handler(){
@Override
public void handleMessage(@NonNull Message msg) {
super.handleMessage(msg);
switch (msg.what){
case 1:
Toast.makeText(HandlerActivity2.this, "线程通信成功!", Toast.LENGTH_SHORT).show();
break;
}
}
};
new Thread(){
@Override
public void run() {
super.run();
Message message = new Message();
message.what = 1;
mHandler.sendMessage(message);
}
}.start();
}
}