HandlerThread的用途 我看了半天HandlerThread也搞不懂它是干嘛的 我用handler和thread不也可以做吗 干嘛非要HandlerThread感觉反而更加麻烦了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 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 其实。。我也没深入研究过。。但我看过AsyncTask和progressbar的源码,貌似都用到这个。。然后我发现AsyncTask已经能解决百分之九十九的问题了。。就不研究了 个人觉得1楼的答案已经指出关键了 HandlerThread“使用wait/notifyAll解决了多线程中子线程1获取子线程2的Looper对象为空的问题”虽然这种情况也许不常遇到,不过还是要注意一下。 下载文件过程中,按返回键问题 如何拖动listview socket 连接超时?? android2.3 源码编译出错 Android短信接收问题(真机测试不行),跪求高手! android项目如何打包在手机上使用 Android出错 安卓4.2.2 调节音量的函数如何换成自己的代码(内详细) 请问在pulltorefreshGridView中的图片设置了大小之后怎么就不显示了呢 AS报错问题 求Android书籍 android WebView 播放FLV 格式的视频
详见:http://tech.cncms.com/shouji/android/96016.html