本文回答了“为什么使用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
1 消息循环所在的函数
CWinApp::Run
2 消息类别
Windows Messages
WM_XX前缀开头,但是除了WM_COMMAND消息外。
Control Notifications
包含来自控件或者子窗口发给父窗口的 WM_COMMAND的通知消息。
Command Messages
菜单,工具栏按钮,快捷键
3 消息的发送和接受
CWinApp...
分类:
其他好文 时间:
2014-08-20 16:27:02
阅读次数:
182
近来找了一些关于android线程间通信的资料,整理学习了一下,并制作了一个简单的例子。 andriod提供了 Handler 和 Looper 来满足线程间的通信。例如一个子线程从网络上下载了一副图片,当它下载完成后会发送消息给主线程,这个消息是通过绑定在主线程的Handler来传递的。在Andr...
分类:
编程语言 时间:
2014-08-19 16:26:04
阅读次数:
244
Android中的Looper类,是用来封装消息循环和消息队列的一个类,用于在android线程中进行消息处理。handler其实可以看做是一个工具类,用来向消息队列中插入消息的。 (1) Looper类用来为一个线程开启一个消息循环。 默认情况下android中新诞生的线程是没有开启消息循环的.....
分类:
移动开发 时间:
2014-08-15 17:18:29
阅读次数:
259
一、使用方法。
Looper用来处理消息循环,在创建过程中会初始化MessageQueue。
Handler在其它线程发消息给当前线程
MessageQueue用来存放消息
Looper对象在哪个线程创建,Handler的handleMessage方法就在哪个线程执行
在创建activity时,android系统本身会为activity创建Looper。
final Han...
分类:
其他好文 时间:
2014-08-13 22:37:07
阅读次数:
368
Akka支持Actor消息循环处理部分的热切换,调用context.become方法可以使用新的消息循环处理替换当前的消息处理器,被替换的消息处理器被压到一个栈结构,支持消息处理器的出栈和入栈。注:但Actor重启时,它的消息循环处理恢复到初始的行为。become方法的参数类型为部分函数PartialFunction[Any, Unit],例如:1import akka.actor.Actor2i...
分类:
其他好文 时间:
2014-08-13 10:33:56
阅读次数:
255
创建一个Win32应用程序步骤: 1、编写WinMain函数; 2、创建窗口(步骤如下): a、设计(一个)窗口类(WNDCLASS) b、注册(该)窗口类。 c、创建窗口。 d、显示并更新窗口。 3、编写消息循环。 4、编写窗口过程函数。 1 //WinMain.c...
一.UIApplicationMain的执行步骤1.创建一个UIApplication对象,一个程序对应一个UIApplication对象(单例),UIApplication对象是程序的象征2.接下来会根据第4个参数创建一个UIApplication的delegate对象3.开启一个消息循环(不断地...
分类:
移动开发 时间:
2014-08-11 00:13:11
阅读次数:
395
Android的消息队列和消息循环都是针对具体线程的,一个线程可以存在一个消息队列和消息循环,特定线程的消息只能分发给本线程,不能跨线程和跨进程通讯。但是创建的工作线程默认是没有消息队列和消息循环的,如果想让工作线程具有消息队列和消息循环,就需要在线程中先调用Looper.prepare()来创建消...
分类:
编程语言 时间:
2014-08-10 18:28:20
阅读次数:
250