HandlerThread线程管理
来源:互联网 发布:政务数据共享交换平台 编辑:程序博客网 时间:2024/04/29 06:24
使用过程:
1。新建一个HandlerThread对象:
MyHandlerThread mHandlerThread = new MyHandlerThread("TestTrafficHandlerThread");
2。 使用post方法将Runnable对象加入这个线程的队列
mHandlerThread.post(mStatsTrafficTestRunnable);
3。注意Runnable对象并不是一个线程,而是用于安排在特定线程运行的工作单元,用mHandlerThread.post方法,可指定这个这个Runnable对象的运行线程
4。 mHandlerThread.post加入的所有Runnable对象都工作在线程名为TestTrafficHandlerThread的线程中
5。 一个Thread对应一个looper,一个looper对应一个消息/Runnable队列,一个Thread可定义多个handler
6。一个典型的HandlerThread的定义如下:
public class MyHandlerThread extends HandlerThread{ private Handler mHandler; private List<Runnable> mRunnables = new ArrayList<Runnable>(); private static Object sLock = new Object(); public TrafficStatsHandlerThread(String name) { super(name); } @Override protected void onLooperPrepared() { synchronized (sLock) { mHandler = new Handler(); if (!mRunnables.isEmpty()) { for (Runnable r : mRunnables) { mHandler.post(r); } mRunnables.clear(); } } } public void post(Runnable task) { //当looper还没有准备好时,post方法被调用了,那就先用list缓存好等待执行的方法 synchronized (sLock) { if (mHandler == null) { mRunnables.add(task); } else { mHandler.post(task); } } }}
0 0
- HandlerThread线程管理
- Android 异步线程 HandlerThread
- 线程(HandlerThread)
- Android开发--线程 HandlerThread
- 线程安全4:HandlerThread
- Android 线程之HandlerThread
- HandlerThread分线程启动handler
- HandlerThread分线程启动handler
- 异步消息处理线程----HandlerThread
- 进阶_线程(HandlerThread)_150504
- Android线程HandlerThread源码分析
- 线程使用教程 二 HandlerThread
- 子线程handler与handlerThread
- Android UI线程 HandlerThread 普通线程详解
- HandlerThread
- HandlerThread
- HandlerThread
- HandlerThread
- ORCL服务启动停止脚本
- navicat 破解注册码
- 1025. 反转链表 (25)
- 管中窥探java虚拟机(二) - 亲密接触jvm的指令集
- Xcode7.1以上版本的第三方库的导入解决问号问题
- HandlerThread线程管理
- 如何统计xcode工程的代码总行数
- HTTP协议基础
- Git
- Unity的Json解析<二>–写Json文件
- java接入微信公众平台
- SQL Server存储过程详解
- Android 数据库查询query函数参数解析
- 129,NSValue的应用