handler机制原理全面整理

1、handler用的最多是子线程发送消息到主线程修改UI

2、首先通过Message中的obtain()从消息池中获取消息对象

3、然后要创建Handler对象,在Handler的构造方法中就会得到轮询器Looper和消息队列,这个Looper对象和消息队列是主线程创建的时候创建的,轮询器就不断的轮询消息队列中的消息。

4、然后子线程中用handler对象,调用sendMessage(),发送消息,至于发送到哪,在handler类的源码中其实所有sendMessageAtTime(),把消息重新通过排序放到消息队列中

5、消息队列中的消息是怎么排序的,是根据message的when属性来排序

6、然后轮询器子轮询消息队列的时候,调用dispatchMessage()分发消息,交给handleMessage()处理

7、从而实现了从子线程向主线程发送消息

你可能感兴趣的:(handler机制原理全面整理)