HandleThread
来源:互联网 发布:淘宝网排名怎么靠前 编辑:程序博客网 时间:2024/06/14 00:30
HandleThread集成Thread,它是一种可以使用handle的Thread,它在run方法中通过Looper.prepare()来创建一个消息队列,并通过Looper.loop(),来开启消息循环。
@Override public void run() { mTid = Process.myTid(); Looper.prepare(); synchronized (this) { mLooper = Looper.myLooper(); notifyAll(); } Process.setThreadPriority(mPriority); onLooperPrepared(); Looper.loop(); mTid = -1; }
HandleThread与普通Thread的不同之处,普通Thread是在run方法中执行耗时操作,而HandleThread创建了消息队列,外界可以通过Handle的消息方式执行一个具体的任务。HandleThread的run方法是一个无限循环,当不需要使用时,可以通过quit或者quitSafely来终止程序的执行。
HandleThread的使用场景以及好处:
1.在需要重复使用子线程处理任务时,可以使用HandlerThread,它自带Looper使他可以通过消息来多次重复使用当前线程,节省开支,如果在开发中多次使用类似new Thread(){…}.start(),这种方式开启一个子线程,会创建多个匿名线程,使得程序运行变慢。
2.在非UI线程使用消息机制,可以使用HandlerThread,它不会干扰或阻塞UI线程(android系统提供的Handler类内部的Looper默认绑定的是UI线程的消息队列)
HandleThread的具体应用场景体现在IntentService中,可以参照我的下一篇文章IntentService,这里简单的写一个使用的例子,基本可以安照UI线程的Handle的使用方法使用:
public class HandleThreadActivity extends Activity { private static final String Tag = "HandleThreadActivity"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); HandlerThread mHandlerThread = new HandlerThread("test"); mHandlerThread.start(); Looper mLooper = mHandlerThread.getLooper(); Handler mHandler = new Handler(mLooper) { @Override public void handleMessage(Message msg) { super.handleMessage(msg); int value = msg.what; Log.i(Tag, "value====" + value); } }; mHandler.sendEmptyMessage(2); }}
阅读全文
0 0
- HandleThread
- Android HandleThread源码分析
- HandleThread的分析
- 【Android】HandleThread后台数据处理
- DatagramSocket广播使用 附HandleThread使用
- Android -HandleThread-给线程传参数
- DatagramSocket广播使用 附HandleThread使用
- handler以及handleThread相关的资识
- 带你从源码理解Looper ,handle,MessageQueue,HandleThread
- 通过几个例子来了解Handle Runnable Thread HandleThread的关系.
- 51 Nod1091线段重合
- java.net.SocketException: socket closed 解决方式
- ionic路由嵌套
- 映射问题(让查询出的结果和实体类对应)
- Pyhotn工厂模式
- HandleThread
- 离开
- 145. PHP header status code
- 实验验证&和&& |和||的区别
- android app瘦身
- 实习笔记: 实习第二天工作总结
- bootstrap标签页
- Java 程序员快速上手 Kotlin 11 招
- 内部一致性与相互一致性关系总结