HandlerThread
来源:互联网 发布:信鸽软件官网 编辑:程序博客网 时间:2024/06/11 17:45
HandlerThread继承于Thread,所以它本质就是个Thread。与普通Thread的差别就在于,它有个Looper成员变量。这个Looper其实就是对消息队列以及队列处理逻辑的封装,简单说就是 消息队列+消息循环。
当我们需要一个工作者线程,而不是把它当作一次性消耗品,用过即废弃的话,就可以使用它。
private Handler mHandler = null;
private HandlerThread mHandlerThread = null;
private void sentRunnableToWorker(Runnable run){
if (null == mHandlerThread)
{
mHandlerThread = new HandlerThread("WorkerThread");
// 给工作者线程低优先级
mHandlerThread.setPriority(Thread.MIN_PRIORITY);
mHandlerThread.start();
}
if (null == mHandler)
mHandler = new Handler(mHandlerThread.getLooper());
mHandler.post(run);
}
整体来说代码还是比较浅显易懂的。主要的作用是建立了一个线程,并且创立了消息队列,有来自己的looper,可以让我们在自己的线程中分发和处理消息。具体的使用示例,我会在下一帖中体现。还有要说明的是handler 与谁相关联不是看声明在什么地方,是看与哪个线程的looper挂钩。默认是主线程的looper.因为主线程中默认就有了looper,消息循环队列,在使用HandlerThread时,注意多线程问题。
转载:http://blog.csdn.net/wangshione/article/details/6560628
- HandlerThread
- HandlerThread
- HandlerThread
- HandlerThread
- HandlerThread
- HandlerThread
- HandlerThread
- HandlerThread
- HandlerThread
- HandlerThread
- HandlerThread
- HandlerThread
- HandlerThread
- HandlerThread
- handlerThread
- HandlerThread
- HandlerThread
- HandlerThread
- Ubuntu 11.10编译Android 错误
- 解决在SQL server 2000中病毒时遇到的Microsoft SQL-DMO(ODBC SQLState :42000)问题
- Linux下,DIY apache和memcache守护进程
- VC操作注册表函数
- 程序员的7个坏习惯来源: 开源中国社区 发布时间: 2012-06-03 08:38 阅读: 5543 次 原文链接 全屏阅读 [收藏]
- HandlerThread
- android post
- JAVA中事件处理的总结
- 进步又下降。。。
- 三种Cache写入方式原理简介
- Smack 结合 Openfire服务器,建立IM通信,发送聊天消息
- U盘加个性图标
- 对AttributeSet和defStyle的理解
- 微软:Surface已在手 该做手机了吧?