简介
android中的looper类,是用来封装消息循环和消息队列的一个类,用于在Android线程中进行消息处理。handler可以看作是工具类,用于向消息队列中插入消息。
looper类的作用
-
looper类用来为一个线程开启消息循环;
-
通常是通过handler对象与looper进行交互,handler可以看作是looper的一个接口,用于向指定的looper发送消息及定义处理方法;
-
在非主线程中直接new handler()会报错,原因是非主线程中默认没有创建looper对象,需要先调用looper.prepare()启用looper;
-
looper.loop()让Looper开始工作,从消息队列中取消息,处理消息;
-
基于以上知识,可以实现主线程给子线程(非子线程)发送消息,如下面的代码。
class LooperThread extends Thread {
public Handler mHandler;
public void run() {
Looper.prepare();//启动looper
mHandler = new Handler(Looper.myLooper()) {
public void handleMessage(Message msg){//处理传入的信息
// process incoming messages here
}
};
Looper.loop();//处理在这个线程的MQ
}
}
如有错误,希望各位观摩的大佬能指出嘻嘻嘻~