//1.初始化,参数为名字,也就是线程的名字,后面我们会结合源码来看
mHandlerThread = new HandlerThread("WorkThread");
//必须调用start方法,因为HandlerThread继承自Thread来启动线程
mHandlerThread.start();
//初始化Handler,只是传递了一个mHandlerThread内部的一个looper
mHandler = new Handler(mHandlerThread.getLooper()) {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
Log.d("WorkThread", (Looper.getMainLooper() == Looper.myLooper()) + "," + msg.what);
}
};
//2.使用
public void send(View view) {
new SendThread(mHandler).start();
}
private final class SendThread extends Thread {
private Handler mHandler;
SendThread(Handler handler) {
this.mHandler = handler;
}
@Override
public void run() {
super.run();
for (int i = 0; i < 3; i++) {
mHandler.sendEmptyMessage(0x1);
SystemClock.sleep(1000);
}
}
}
https://www.jianshu.com/p/c20de49d8d9a
总结一下: