Handler定义:
主要接受子线程发送的数据,并配合主线程更新UI。
当程序启动时,会启动UI线程,主要负责管理界面Ui控件,进行事件分发,比如点击一个button,Android会分发事件到Button上,响应你的操作。Handler运行在主线程中,它与子线程通过message对象传递数据,Handler接受子线程传递过来的(子线程用sendMessage()传递)Message对象(包含数据),把这些消息放入主线程队列中,配合主线程进行更新UI。
Android使用Handler进行多线程开发:
理解Handler的工作原理,先介绍Handler一起工作的几个组件
Message:Handler接受和处理的消息对象;
Looper:每个线程只能有一个Looper。它的loop方法负责读取MessageQueue中的消息,读到消息之后把消息传递给发送该消息的Handler处理。
MessageQueue:消息队列。程序在创建Looper对象时,会在他的构造器中创建MessageQueue对象。
在线程中使用Handler的步骤如下:
1、调用Looper的prepare()方法为当前线程创建looper对象;
2、有了looper之后,创建Handler的子类实例,重写handleMessage方法。
3、调用Looper的loop()方法启动looper。