HandlerThread类可以很方便地创建一个带有looper的新线程。该looper可以被用来创建hanlder对象。需要注意的是start方法必须要调用。HandlerThread使用起来之所以感觉方便,是因为HandlerThread这个类在run方法内部对Looper做了一些工作(调用Looper.prepare()和Looper.loop()方法),这样我们开发者在使用的时候就不需要太多的与Looper打...
分类:
移动开发 时间:
2015-08-06 18:20:41
阅读次数:
133
Android应用程序也是消息驱动的,按道理来说也应该提供消息循环机制。实际上谷歌参考了Windows的消息循环机制,也在Android系统中实现了消息循环机制。 Android通过Looper、Handler来实现消息循环机制,Android消...
分类:
移动开发 时间:
2015-08-06 17:04:58
阅读次数:
137
Android系统中,Java的应用程序和其他的系统相同,都是靠消息驱动工作的,大致的工作原理是:
有一个消息队列,可以往这个消息队列中投递消息。
有一个消息循环,不断从消息队列中取出消息,然后处理。
在Android系统中,这些工作主要是由Looper和Handler类来实现。
Looper类,用于封装消息循环,并且有一个消息队列。
...
分类:
其他好文 时间:
2015-08-05 18:22:01
阅读次数:
109
以下是Android API中的一个典型的Looper thread实现://Handler不带参数的默认构造函数:new Handler(),实际上是通过Looper.myLooper()来获取当前线程中的消息循环,//而默认情况下,线程是没有消息循环的,所以要调用 Looper.prepare(...
分类:
移动开发 时间:
2015-08-04 18:50:49
阅读次数:
160
由于《深入理解Android 卷一》和《深入理解Android卷二》不再出版,而知识的传播不应该因为纸质媒介的问题而中断,所以我将在CSDN博客中全文转发这两本书的全部内容。第5章 深入理解常见类本章主要内容· 分析RefBase、sp,wp和LightRefBase类。· 分析Native的Thread类和常用同步类。· 分析Java层的Handler、Looper,以及HandlerTh...
分类:
移动开发 时间:
2015-08-02 16:52:00
阅读次数:
263
1、在Android中的异步处理方式?
2、如何使用Handler以及在使用过程中如何避免Handler引起的内存泄露?
3、从源码角度分析MessageQueue,Message,handler,looper,主线程,子thread之间的关系
4、Handler通过sendMessage以及post Runable对象有什么区别
5、如何给一个线程建立消息循环,即如何构建一个looper线程?
6、Asynctask中有哪些方法,分别如何使用,哪些方法在主线程执行,哪些方法在子线程执行,Asynctask...
分类:
移动开发 时间:
2015-08-02 01:03:28
阅读次数:
1740
本文主要是对Handler和消息循环的实现原理进行源码分析,通过分析源码的方式去探索Thread、MessageQueue、Looper、Message以及Handler的实现原理,并最终通过一张图的形式将它们之间的关系展示出来。...
分类:
移动开发 时间:
2015-08-01 06:26:47
阅读次数:
126
关于异步消息的用法,可以看之前的一篇文章http://blog.csdn.net/leelit/article/details/45196827,现在来解析一下源码。经典用法class LooperThread extends Thread {
public Handler mHandler; public void run() {
Looper.prepa...
分类:
移动开发 时间:
2015-07-31 12:58:20
阅读次数:
152
Android中Handler的原理一.Handler的原理:1.Handler、Looper、MessageQueue之间的关系。(1).Handler类:向MessageQueue消息队列中发送消息,接收Looper返回来的消息并处理。(2).Looper类: 存储消息队列的容器。负责接收Handler发送的消息,并直接把消息回传给Handler自己。(3).MessageQueue类:存储消息...
分类:
移动开发 时间:
2015-07-26 17:23:07
阅读次数:
155
声明HandlerThread对象,实现了使用Looper来处理消息队列的功能 //这个类由Android操作系统提供 HandlerThread handlerThread = new HandlerThread("handler_Thread"); handlerThre...
分类:
编程语言 时间:
2015-07-19 13:18:25
阅读次数:
109