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; #消息分类:通过子类覆盖此方法,处理窗口命令消息, ...
一周排行
  •  出现这个问题是因为 Minimal 安装模式 所以并没有安装 setuptool 软件. 解决办法为: 使用yum 源直接下载安装 或者 去下载 setuptool 软件包安装  #安装setuptoolyum i ...
  • 配置文件主要在.conf/fcitx/下 和 /usr/share/fcitx其中的.conf/fcitx/profile是对软件全局设定    # Input Window Shows at the positio ...
  • 今天在群里看到有人问关于Ubuntu系统设置启动级别的问题,因自己以前遇到过,故做过笔记记录了下来:Ubuntu.Debian系列与RedHat.CentOS启动级别含义有所区别:Ubuntu系列运行级别定义如下:0 ...
  • * literal:也就是普通纯文本,对 shell 来说没特殊功能.* meta:对 shell 来说,具有特定功能的特殊保留字符.(注一:关于 bash shell 在处理 command line 时的顺序说明 ...
  • more /etc/passwd 查看用户 cat /etc/passwd |cut -f1 -d: 查看系统有哪些用户,在这里冒号可以用单引号括起来也可以不用,冒号与-d之间可以有空格也可以没有空格,-f后面是数字 ...
  • 作为开发者,我们都很清楚,我们开发的跟网络相关的程序,一般都会通过使用HTTP协议,发出相关的请求信息.当在应用运行之初时,这些网络上的信息的传递是十分畅顺的,我们获得的信息都是我们期望所获得的.然而,开发者会发现经 ...
  • 1.Tocmcat的目录认识Bin/   启动和关闭脚本Conf/  配置文件server.sml web.xml user.xmlLogs/   存放日志文件Webapps/ 存放web应用程序Work/  Tem ...
  • 在新博学习Java也接近一个一个月了,说难也难,说不难也没那么简单,语法的东西容易理解难弯,虽然以前学过C语言,但是在我看来就是前面的For.while,if这些循环似曾相识,都说每种语言的程序设计思想大同小异,只是 ...
  • 2016.2.10-2.24中关村图书大厦实习--图书管理系统;
    实习时间:2016.2.10--2016.2.24 实习地点:北京市海淀区中关村图书大厦 ...
  • 这又是一篇记录平常工作笔记的博客,无论是在排版还是解说上都不会有太多要求.同时这也是一篇不上博客园首页的博客,Just记录一些工作笔记. vSelect返回单个值 string connSQL = @"Da ...