Handler分析

3/1/2017来源:Android开发人气:760

Looper:消息泵 作用:不断从消息队列中获取消息通过Handler的消息分发机制进行消息处理 MessageQueue:消息队列 作用:存储消息的,采用的队列的数据结构(先进先出) Handler:消息处理者 作用:发送消息并且可以分发消息 Message:消息 作用:携带交互的数据 如果想进行线程间数据交互,我们就可以采用Handler进行操作 首先:对应的线程应该先创建Looper对象 Looper.PRepare(一个线程只能有一个looper对象) 然后再实例化Handler对象,而且这个Handler就拥有当前线程的Looper对象和looper对象中的消息队列,实例化handler的时候就 决定了消息的分发机制 depattchMessage进行消息分发,优先分给Message.CallBack,不存在就 分发给 Handler.CallBack,不存在就分发给Handler的handleMessage 完成所需的handler的实例化之后调用Looper.loop开启消息的循环获取 loop方法就是不断的从当前的消息队列中获取将要发送的消息,然后调用对应的handler的消息分发。最后如果需要发送数据就使用上述实例化的handler对象调用对应的发送方法将消息添加等待着looper的循环获取