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; #消息分类:通过子类覆盖此方法,处理窗口命令消息, ...
一周排行
  • LVM逻辑卷动态增大减小分区
              Lvm教学文档By zuoyuezong@126.com一.简介VM是 ...
  • LAMP架构之httpd+php(module)+mariadb
    CentOS 7, lamp(module):实现:(1) 三者分离于两台主机:(2) 一 ...
  • 插件介绍 Http插件是2.0版本才出现的新插件,1.x是没有这个插件的.这个插件可以帮助logstash接收其他主机或者本机发送的http报文. 插件的原理很简单,它自己启动了一个ruby的服务器,用于接收Http ...
  •  CentOS-6.2-i386-netinstall.iso这是一个用于网络安装和系统救援的镜像文件.这个镜像文件可以被刻录进 CD 中.然后将 PC 设置为从 CD 引导.CentOS-6.2-i386-mini ...
  • 我收到了很多年轻开发人员写给我的邮件,希望可以提升自己的编程能力.我肯定不是第一个讨论这个话题的人,所以我不确定还可以说出什么新意.然而,这里我认为还是非常值得列出我认为很重要的几点吧.要跟其他开发者一起工作.我们正 ...
  • 1139 约瑟夫环问题 时间限制:500MS  内存限制:65536K提交次数:157 通过次数:79 题型: 编程题   语言: G++;GCC Description 约瑟夫(josephus)环是这样的:假设有 ...
  • Linux系统守护进程详解不要关闭下面这几个服务:acpid, haldaemon, messagebus, klogd, network, syslogd 1. NetworkManager, NetworkMan ...
  • 信贷额度的组成:假如某客户信用限额1万:开出销售订单时锁定1万:一旦发货1万,销售订单1万限额释放,变成发货锁定限额1万.一旦开票,发货1万限额释放,应收锁定1万限额.清帐成功,应收释放1万.信用限额又回到1万了,如 ...
  • MFC中热键&模拟键盘&模拟鼠标的使用
    转载地址:http://my.oschina.net/871120/blog/288145 ...
  • 内容:使用javac 指定编译多个目录下java文件 链接:http://zhidao.baidu.com/link?url=W5ZERu8_ouGD-L_JH0vqqawhJNitsGbonQAATedyFZVEo ...