HandlerThread
handlerThread就是一个包含looper的Thread.
- 使用方法
HandlerThread handlerThread = new HandlerThread("handlerThread");
//handlerThread.getLooper()获取Looper
Handler handler = new Handler(handlerThread.getLooper()) {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
}
};
Message msg = new Message();
msg.what = 1;
handler.sendMessage(msg);
- 获取handlerThread中默认初始化的一个handler可以用方法
Handler handler = getThreadHandler();
- 需要调用结束方法. 因为在Thread中的
run
方法中Looper.loop()
使得run方法一直阻塞.
//使Looper停止退出,从而使线程停止退出,可以执行完成MessageQueue中的所有的消息,如果停止成功返回true,否则false
handlerThread.quitSafely();
//MessageQueue中如果还有消息,也不会被执行
handlerThread.quit();