JAVA里Handler是一个抽象类,继承于java.util.loggin.Handler,作用是其对象从Logger中获取日志信息并导出。
Android里Handler是普通类,可以实现异步回调功能。Handler对象会提交给Looper进行循环监控,主线程会自己开启一个Looper,因此可以直接在主线程里使用Handler,在新开的线程中没有Looper,如想要调用Handler,则需要下面两种方法的一种:
1.在新开启的线程中创建Looper对象
Looper.prepare();
并调用Looper.myLooper.loop()建立消息循环机制,其中Looper.myLooper是获取当前线程绑定的Looper对象。
2.使用主线程中的Looper对象
handler=new Handler(Looper.getMainLooper()){
public void handleMessage(android.os.Message msg) {
Log.d(Constant.TAG, MessageFormat.format("Thread[{0}]--threadMainLoopHandler handleMessage run...", Thread
.currentThread().getName()));
然后使用callback进行回调
在activity.finish()时,需清空Handler中未处理的消息,否则无法执行destroy()。