Handler详细分析:
http://blog.csdn.net/feiduclear_up/article/details/46817283
HandlerThread:
HandlerThread继承于Thread,它和普通的Thread的不同在于其run方法执行之后会创建一个消息队列Looper,并对外提供获取接口!
好处:
HandlerThread自带Looper使得他可以重复使用当前线程,节省开支,当不使用时就可以删除,保障线程不会重复创建
如果是使用普通Thread的话(new Thread().start()这种方式会导致程序变慢),系统默认的Handler是使用UI主线程的Looper的
所以需要使用HandlerThread里面的looper才不会堵塞主线程,
class MyHandlerThread extends HandlerThread implements Callback {
public MyHandlerThread(String name) {
super(name);
}
@Override
public boolean handleMessage(Message msg) {
}
}
MyHandlerThread myHandler = new MyHandlerThread("lsk");
myHandler.setPriority(Thread.MIN_PRIORITY);
//要先start才能获取looper
myHandler.start();
Handler handler = new Handler(myHandler.getLooper(), myHandler);