本文回答了“为什么使用Handler能跨线程更新UI?”,同时从源码角度剖析了暗藏在Handler背后的玄机:Looper(封装了消息循环)和MessageQueue(消息队列),它们是所有App(Activity)得以运作的核心。Handler本质上具有两个角色——消息队列的窗口(Handler.sendMessage)、处理消息的回调(Handler.handleMessage)。最后指出,后台线程通过Handler更新UI本质上是“生产者消费者问题”。...
分类:
移动开发 时间:
2014-08-28 18:07:55
阅读次数:
313
Looper.prepare()和Looper.loop()原文地址:http://blog.csdn.net/heng615975867/article/details/9194219Android中的Looper类,是用来封装消息循环和消息队列的一个类,用于在android线程中进行消息处理。h...
分类:
移动开发 时间:
2014-08-28 13:07:09
阅读次数:
354
当在非UI线程中更新UI(程序界面)时会出现如下图所示的异常:
Only the original thread that created a view hierarchy can touch its views.
那如何才能在非UI线程中更细UI呢?
方法有很多种,在这里主要介绍两种:
第一种:在需要更新UI的代码行后加Looper.prepare();与Looper.loop();两句话即可。如:...
分类:
移动开发 时间:
2014-08-27 20:34:08
阅读次数:
352
近来找了一些关于android线程间通信的资料,整理学习了一下,并制作了一个简单的例子。 andriod提供了 Handler 和 Looper 来满足线程间的通信。例如一个子线程从网络上下载了一副图片,当它下载完成后会发送消息给主线程,这个消息是通过绑定在主线程的Handler来传递的。在Andr...
分类:
编程语言 时间:
2014-08-19 16:26:04
阅读次数:
244
android的消息处理有三个核心类:Looper,Handler和Message。其实还有一个Message Queue(消息队列),但是MQ被封装到Looper里面了,我们不会直接与MQ打交道,因此我没将其作为核心类。下面一一介绍:Looper Looper的字面意思是“循环者”,它被设计用来使...
分类:
移动开发 时间:
2014-08-19 10:34:14
阅读次数:
370
Android中的Looper类,是用来封装消息循环和消息队列的一个类,用于在android线程中进行消息处理。handler其实可以看做是一个工具类,用来向消息队列中插入消息的。 (1) Looper类用来为一个线程开启一个消息循环。 默认情况下android中新诞生的线程是没有开启消息循环的.....
分类:
移动开发 时间:
2014-08-15 17:18:29
阅读次数:
259
Android中Thread、Handler、Looper、MessageQueue的原理分析...
分类:
移动开发 时间:
2014-08-14 16:45:48
阅读次数:
330
一、使用方法。
Looper用来处理消息循环,在创建过程中会初始化MessageQueue。
Handler在其它线程发消息给当前线程
MessageQueue用来存放消息
Looper对象在哪个线程创建,Handler的handleMessage方法就在哪个线程执行
在创建activity时,android系统本身会为activity创建Looper。
final Han...
分类:
其他好文 时间:
2014-08-13 22:37:07
阅读次数:
368
一.Handle的用例:
1.创建handle实例
new handle();
2.发送信息载体(Message)
sendMessage(msg);
3.处理消息
handleMessage(Message msg){};
二.原理浅析
结合以上的handle调用三部曲,我们将顺藤摸瓜理清Handle、Looper、Message、MessageQueue的逻辑与关系。
...
分类:
移动开发 时间:
2014-08-12 00:51:33
阅读次数:
246
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/38476887 ,本文出自【张鸿洋的博客】上一篇博客介绍了Android异步消息处理机制,如果你还不了解,可以看:Android 异步消息处理机制 让你深入理解 Looper、Handler、Message三者关系 。那篇博客的最后,提出可以把异步消息处理机制不仅仅是在MainAc...
分类:
移动开发 时间:
2014-08-11 02:58:41
阅读次数:
361