社区
Android
帖子详情
HandlerThread的用途
南瓜饼
2012-12-05 11:01:49
我看了半天HandlerThread也搞不懂它是干嘛的 我用handler和thread不也可以做吗 干嘛非要HandlerThread感觉反而更加麻烦了
...全文
317
4
打赏
收藏
HandlerThread的用途
我看了半天HandlerThread也搞不懂它是干嘛的 我用handler和thread不也可以做吗 干嘛非要HandlerThread感觉反而更加麻烦了
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
balmy
2012-12-06
打赏
举报
回复
个人觉得1楼的答案已经指出关键了 HandlerThread“使用wait/notifyAll解决了多线程中子线程1获取子线程2的Looper对象为空的问题”虽然这种情况也许不常遇到,不过还是要注意一下。
追风筝的孩子
2012-12-06
打赏
举报
回复
其实。。我也没深入研究过。。但我看过AsyncTask和progressbar的源码,貌似都用到这个。。然后我发现AsyncTask已经能解决百分之九十九的问题了。。就不研究了
James_focus
2012-12-05
打赏
举报
回复
Android应用中的消息循环由Looper和Handler配合完成,Looper类用于封装消息循环,类中有个MessageQueue消息队列;Handler类封装了消息投递和消息处理等功能。 系统默认情况下只有主线程(即UI线程)绑定Looper对象,因此在主线程中可以直接创建Handler的实例,但是在子线程中就不能直接new出Handler的实例了,因为子线程默认并没有Looper对象,此时会抛出RuntimeException异常; 如果需要在子线程中使用Handler类,首先需要创建Looper类实例,这时可以通过Looper.prepare()和Looper.loop()函数来实现的。通过阅读Framework层源码发现,Android为我们提供了一个HandlerThread类,该类继承Thread类,并使用上面两个函数创建Looper对象,而且使用wait/notifyAll解决了多线程中子线程1获取子线程2的Looper对象为空的问题。这样便成功避免了上述的异常等问题。 详见:
http://tech.cncms.com/shouji/android/96016.html
南瓜饼
2012-12-05
打赏
举报
回复
难道就没有人深入研究过吗
深入Android
Handler
,MessageQueue与Looper关系
关联篇:
Handler
Thread
使用及其源码完全解析 关联篇:
Handler
内存泄漏详解及其解决方案 一说到Android的消息机制,自然就会联想到
Handler
,我们知道
Handler
是Android消息机制的上层接口,因此我们在开发过程中也只需要和
Handler
交互即可,很多人认为
Handler
的作用就是更新UI,这也确实没错,但除了更新UI,
Handler
其实还有很多其他
用途
,比如我们需要在子线程进行耗时的I/O操作,可能是读取某些文件或者去访问网络等,当耗时操作完成后我们可能需要在UI上做出相应的改变,但由于Android系统的限制,我们是不能在子线程更新UI控件的,否则就会报异常
浅谈Android 的线程和线程池的使用
Android 的线程和线程池 从
用途
上分,线程分为主线程和子线程;主线程主要处理和界面相关的事情,子线程则往往用于耗时操作。 主线程和子线程 主线程是指进程所拥有的线程。Android 中主线程交 UI 线程,主要作用是运行四大组件以及处理它们和用户的交互;子线程的作业则是执行耗时任务。 Android 中的线程形态 1、AsyncTask AsyncTask 是一种轻量级的异步任务类,可以在线程池中执行后台任务,然后把执行的进度和最终结果传递给主线程并在主线程中更新 UI, AsyncTask 是一个抽象的泛型类,提供了 Params(参数的类型)、Progress(后台任务执行进度的类型
精通Android多线程视频教程
通过本课程的学习,让你透彻精通Android多线程编程,课程内容包括:1.UI线程和非UI线程2.使用
Handler
发送post请求3.使用
Handler
处理Message消息4.
Handler
、Looper、MessageQueue三者的关系5.UI线程
Handler
和工作线程
Handler
6.使用
Handler
Thread
7.更新UI的方法8.使用AsyncTask
谈谈Android中的
Handler
Thread
** 一、简介 ** 在详细讲解这篇文章之前,应该有部分的Android初级开发者并没用使用过
Handler
Thread
,最常使用的消息传递机制应该离不开
Handler
,那么
Handler
跟
Handler
Thread
有什么不同呢,好处又在哪里? 名詞 解释
Handler
在android中负责发送和处理消息,通过它可以实现其他支线线程与主线程之间的消息通讯
Thread
进程中执行运算的最小单位,亦即执行处理机调度的基本单位
Handler
Thread
一个继承自
Thread
的类H
Android
Handler
Thread
总结使用
前言 以前我在【Android
Handler
、Loop 的简单使用】介绍了子线程和子线程之间的通信。 很明显的一点就是,我们要在子线程中调用Looper.prepare() 为一个线程开启一个消息循环,默认情况下Android中新诞生的线程是没有开启消息循环的。(主线程除外,主线程系统会自动为其创建Looper对象,开启消息循环。) Looper对象通过MessageQueue来存放消息和事件。一个线程只能有一个Looper,对应一个MessageQueue。 然后通过Looper.loop() ..
Android
80,348
社区成员
91,289
社区内容
发帖
与我相关
我的任务
Android
移动平台 Android
复制链接
扫一扫
分享
社区描述
移动平台 Android
android
android-studio
androidx
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章