Handler的线程操作原理

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

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

Handler的新建


新建handler源码

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


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

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

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

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

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

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容