androidhandler传递消息机制

当工作线程给主线程发送消息时,因为主线程是有looper的,所以不需要初始化looper,注意给谁发消息就关联谁的handler,此时用的就是主线程的handler

handler会把消息发送到MessageQueue队列中,looper会不断的去遍历MessageQueue队列,当一有消息时就会回调handler的handleMessage方法!

当主线程给工作线程发消息时,关联的是子线程的handler,子线程是没有looper的。所以我们需要调用Looper.prepare(),初始化一个Looper,放入Threadlocal中,

最后要调用looper.loop方法开始轮询MessageQueue队列里面的消息,机制也是回调机制!

更多相关文章
  • Android消息机制
    每一个Android应用在启动的时候都会创建一个线程,这个线程被称为主线程或者UI线程,Android应用的所有操作默认都会运行在这个线程中.但是当我们想要进行数据请求,图片下载,或者其他耗时操作时,是不可能在这个UI线程做的,因为Android在3.0以后的版本已经禁止了这件事情,直接抛出一个异常 ...
  • iOS开发系列--通知与消息机制
    概述 在多数移动应用中任何时候都只能有一个应用程序处于活跃状态,如果其他应用此刻发生了一些用户感兴趣的那么通过通知机制就可以告诉用户此时发生的事情.iOS中通知机制又叫消息机制,其包括两类:一类是本地通知:另一类是推送通知,也叫远程通知.两种通知在iOS中的表现一致,可以通过横幅或者弹出提醒两种形式 ...
  • 通知与消息机制
    概述 在多数移动应用中任何时候都只能有一个应用程序处于活跃状态,如果其他应用此刻发生了一些用户感兴趣的那么通过通知机制就可以告诉用户此时发生的事情.iOS中通知机制又叫消息机制,其包括两类:一类是本地通知:另一类是推送通知,也叫远程通知.两种通知在iOS中的表现一致,可以通过横幅或者弹出提醒两种形式 ...
  • 在分布式企业级应用程序中,异步消息机制用于有效地协调各个部分的工作. J2EE为我们提供了JMS和消息驱动Bean(Message-Driven Bean),用来实现应用程序各个部件之间的异步消息传递. 一.什么是消息系统? 通常一个消息系统允许分开的未耦合的应用程序之间可靠地异步通信.在企业应用时 ...
  •                                                                  一.消息机制 1.在viewDidLoad中直接用 performSelector:@selector(doSomething) 来调用doSomething方法时,会发 ...
  • MFC消息机制涉及许多知识,比如消息分类,消息映射等. 知识先了解一下,马上动手实践才是硬道理. 我建了个SDI项目,把常用的消息试验了一遍. 如果像我一样初学的,可以留下邮箱索取源码. // MainFrm.h afx_msg void OnMenuMsg(); // 菜单命令消息 afx_msg ...
  • Android的消息机制(一)android 有一种叫消息队列的说法,这里我们可以这样理解:假如一个隧道就是一个消息队列,那么里面的每一部汽车就是一个一个消息,这里我们先忽略掉超车等种种因素,只那么先进隧道的车将会先出,这个机制跟我们android 的消息机制是一样的.一.角色描述1.Looper: ...
  • TObject消息分派 procedure Dispatch(var Message); virtual; #负责分派消息到特定VCL组件的事件处理函数 procedure DefaultHandler(var Message); virtual; #消息分类:通过子类覆盖此方法,处理窗口命令消息, ...
一周排行
  • 成功的虚拟化系统是如何炼成的设计篇
     成功的虚拟化系统是如何炼成的?设计篇一个项目的成功归功于很多因素.可若想毁掉一个项目,一 ...
  • C#开源实现MJPEG流传输
    本文为 Dennis Gao 原创技术文章,发表于博客园博客,未经作者本人允许禁止任何形式 ...
  • "/"应用程序中的服务器错误.访问被拒绝.说明: 访问服务此请求所需的资源时出错.服务器可能未配置为访问所请求的 URL. 错误消息 401.2.: 未经授权: 服务器配置导致登录失败.请验证您是 ...
  • IPSEC构建站点到站点连接的基本过程对于站点到站点的会话,构建连接的基本过程如下:一个VPN网关对等体发起了到另外一个远程的VPN网关对等体的会话(触发流量)如果没有存在VPN的连接,那么ISAKMP/IKE阶段1 ...
  •  马化腾是谁?你也许没听说过马化腾,但一定听说过QQ:你也许没听说过QQ,但一定见过那只胖兮兮.傻乎乎的小企鹅.而他就是QQ的发明人,我们称他做QQ之父.原本只是"超级网虫"一个,他的名字在网迷中 ...
  •  Dynamic Language Runtime(DLR).DLR和IronPython全部开源,如果你微软这样的动作吃惊,请看看Microsoft 的 OpenSource Licence,可以到codeplex ...
  • 修改3389端口的方法
    修改3389端口的方法为了避免别人扫描远程桌面连接端口,保障服务器的安全,我们可以修改一下 ...
  • http://www.centoscn.com/http://linux.chinaunix.net/ linux时代http://www.linuxdiyf.com/ 红联http://linux.cn/porta ...
  • linuxtcp/ip协议及内核参数分析与调优
    我喜欢通俗易通的文章,写文档的风格往往反映了整个人的内心和生活态度,轻松有乐趣才有学习的动 ...
  • 作为初学者,Linux永远是那么神秘,高大上的内容我也不会,所以在这里只能整理一下与管理相关的命令了,如果有不对的或不准确的地方,请指正.可参考:Linux内核--进程管理与调度http://www.linuxidc ...