其他线程接收UI线程发送的消息:
class MyThread extends Thread {
@Override
public void run() {
Looper.prepare();
mHandlerSendToThread = new Handler() {
@Override
public void handleMessage(Message msg) {
Log.d("sendtothread", "接收到消息");
}
};
Looper.loop();
}
new MyThread().start();
mHandlerSendToThread.sendEmptyMessage(22);API:
下面这张图反过来理解就可以:
其他线程并没有自带Looper,需要创建Looper和MessageQueue来接收消息。
过程:UI线程--handler--把消息发送到消息队列--Looper接收—发送给Thread