Android线程之HandlerThread
HandlerThread继承Thread,是一种可以使用Handler的Thread
public class HandlerThread extends Thread {}
HandlerThread的执行:
HandlerThread thread = new HandlerThread("ThreadName");
thread.start();
当HandlerThread的start方法被调用后,HandlerThread的run会执行,HandlerThread的run重写了Thread的run方法。
HandlerThread的run方法做了些什么呢?我们看下面源码,HandlerThread创建了个Looper,然后开启了Looper,从Handler的用法可知,Handler的使用必须要有Looper才可以,子线程中系统不会自动创建Looper的,所以我们在HandlerThread的run方法中创建了Looper,是不是我们就可以在HandlerThread中创建Handler了?这就是上面为什么说HandlerThread是一种可以使用Handler的Thread的原因了。
@Override
public void run() {
mTid = Process.myTid();
Looper.prepare();//创建Looper
synchronized (this) {