Handler内部包括一个消息队列,可以Activity中通过启动一个线程,来将耗时的逻辑放入其中执行,得到更好的用户体验。
Handler handler = new Handler();
Runnable r = new Runnable(){ public void run(){}};
handler.post(r);发送消息到消息队列,然后执行Runnable的run方法,但是线程并没有启动。
所以要创建一个新的线程并启动
Thread th = new Thread(r);
th.start();
当消息队列中有消息时会执行Handler类的方法handlerMessage(Message msg);
其他对象和方法介绍:
Handler的方法removeCallbacks();移除线程对象来中断线程。
Handler的方法postDelayed()延迟执行。
Handler的方法obtainMessage()获取Message对象。
Message类的sendToTarget()发送消息。
Bundle可以把它看成一个特殊的map,键为string类型,值可以为基本数据类型,是一个数据存储的工具。
Looper类提供循环从队列中处理消息的机制。
HandleThread类实现使用Looper来循环处理消息队列的功能,