Looper类是用来管理一个线程的消息队列的。
Handler可以在一个线程的消息队列中处理Message和Runnable对象。
Handler处理Runnable对象时,实际是在Looper对象所在的线程中调用run()方法,Hander的默认构造函数使用当前线程的Looper对象,即UI线程的Loope对象。这样一来就容易导致当前线程阻塞,为避免UI线程阻塞,可以使用HandlerThread类的Looper对象。
HandlerThread是Thread线程的子类,并且拥有自己的Looper对象,Handler使用HandlerThread的Loope对象r就会解决上面的问题,但是在使用前必须调用HandlerThread对象的start()方法。
下面是一个例子: