前言
有些同学老问我,快要校招了 今年的金三银四退成了金四银五了,我改准备哪些知识点去面试复习,然而要准备的知识点很庞大,今天要讲的知识其中之一。一篇关于HandlerThread的解析
文档笔记~

知识汇总的PDF相关内容后续GitHub更新,想冲击金三银四的小伙伴可以找找看看,欢迎star
(顺手留下GitHub链接,需要获取相关面试等内容的可以自己去找)
https://github.com/xiangjiana/Android-MS
更多完整项目下载。未完待续。源码。图文知识后续上传github。
可以点击关于我联系我获取
使用场景
HandlerThread是Google帮我们封装好的,可以用来执行多个耗时操作,而不需要 多次开启线程,里面是采用Handler和Looper实现的。
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?
1. 创建HandlerThread的实例对象
HandlerThread handlerThread = new HandlerThread("myHandlerThread" );
该参数表示线程的名字,可以随便选择。
1. 启动我们创建的HandlerThread线程
handlerThread.start();
将我们的handlerThread与Handler绑定在一起。 还记得是怎样将Handler与线 程对象绑定在一起的吗?其实很简单,就是将线程的looper与Handler绑定在一 起,代码如下:
mThreadHandler = new Handler(mHandlerThread.getLooper()) {
@Override
public void handleMessage(Message msg) {
checkForUpdate();
if(isUpdate){
mThreadHandler.sendEmptyMessage(MSG_UPDATE_INFO);
}
}
};
注意必须按照以上三个步骤来,下面在讲解源码的时候会分析其原因
完整测试代码如下
public class MainActivity extends AppCompatActivity {
private static final int MSG_UPDATE_INFO = 0x100;
Handler mMainHandler = new Handler();
private TextView mTv;
private Handler mThreadHandler;
private HandlerThread mHandlerThread;
private boolean isUpdate = true;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCre

本文介绍了HandlerThread在Android中的使用场景,包括如何创建和启动HandlerThread,以及为何需要按照特定步骤操作。通过源码分析,解释了HandlerThread构造方法、start方法的工作原理,强调了quit与quitNow方法的区别,强调了在处理消息队列时的安全性问题。
最低0.47元/天 解锁文章
605

被折叠的 条评论
为什么被折叠?



