Handler的线程操作原理

本文参考了http://blog.csdn.net/liao277218962/article/details/48757709,感谢作者。

系统为每个应用维护一个进程,每个进程维护一个消息队列MessageQueue和一个Looper,他们可以绑定多个Handler。

Handler的新建


Handler的线程操作原理_第1张图片
新建handler源码

从图中可以看到,创建Handler时会获取全局的Looper,再通过Looper获取MessageQueue的实例。


Handler的定位和作用(个人理解,有错望指正):

一个信息载体,可以在进程的主线程和子线程创建。

主要作用在于线程间的信息传递,举个栗子:

UI线程需要获取显示在界面上的数据,需要进行耗时的操作,这时需要开启子线程来执行下载,下载的数据如何能给到

UI线程,这就使用到了Handler的sendMessage,把一个消息添加到Messagequeue中,在UI线程实现handleMessage

获取对应的Message对象,并在里面实现自己的业务逻辑,包括更新UI等。

你可能感兴趣的:(Handler的线程操作原理)