今天在分析 Picasso 源码是时看到里面有一个HandlerThread类,之前从未见过,查看HandlerThread源码并跟踪Picasso的用法,理解了这个类的作用。通俗的讲就是这个线程不是用来直接执行自己的run方法的,而是将Message发送到该线程的MessageQueen中,间接工作。
HandlerThread 源码
Handy class for starting a new thread that has a looper. The looper can then be used to create handler classes. Note that start() must still be called.
HandlerThread是一个线程,该线程会创建一个Looper,Looper可用于创建Handler,必需要调用
start()
1 |
|
该方法在 start()
之后执行,创建Looper、MessageQueen,然后 loop()
让这个Looper工作。
Picasso源码中的使用示例
1 | //package com.squareup.picasso.Dispatcher |
1 | //package com.squareup.picasso.Dispatcher.DispatcherHandler |
注:文章中可能有很多错误,也有可能出现无法使用的情况,因为此技术博文是我的学习笔记,我只是记载一些看到或者想到东西,所以我不推荐你来按照该博文的内容进行直接使用,你的一个回复即是对我的最大支持,如有任何疑问请留言。谢谢~~