Handeler的详细解释

Handler

一个handler能让我们发送消息,处理消息和实现了runnable接口的对象(一般指的是进程或实现了Runnable接口的类)。每一个Handler与创建他的进程绑定。一个Handler对象会派发消息和实现了Runnable接口的对象到消息队列中。当这个消息和Runnable接口对象从消息队列中出来的时候,消息会被处理,实现了Runnable接口的对象会被执行。

post

使实现了Runnable接口的回调函数进入消息队列。当Handler被进程附加上的时候,这个回调函数会在进程上执行。

sendMessage (Message msg)

将msg放入当前消息队列的最后面。当它的Handler对象被进程附加的时候,msg会被handler的 handleMessage(Message)接收。

handleMessage (Message msg)

处理消息队列中的消息(msg)

使用Handler对象的方法之间的联系

不同的post方法将实现Runnable接口的对象附加到消息队列中。当消息被接收的时候,Runnable对象中的回调函数会被执行。

不同的sendMessage将Message对象附加到消息队列中。当消息被接收的时候,这个消息会被处理。

 

他们的协作关系如图:

 

 

 

 

作者:kissazi2 
出处:http://www.cnblogs.com/kissazi2/ 
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

转载:http://www.cnblogs.com/kissazi2/archive/2012/08/01/2617597.html

时间: 2024-11-19 03:16:52

Handeler的详细解释的相关文章

求助 int num=030;求详细解释

问题描述 求助 int num=030:求详细解释 int num =030:System.out.println(num);为什么打印出来会是24呢??求大神详细解释 解决方案 楼主可以试试两个极端:你这里写的是int num = 030;由于在30前写了0就被编译器当成了8进制数据,8进制数据30就是10进制的24.你可以试试将语句改成:int num = 080;看看你的系统编译会不会报错 解决方案二: 030表示的是八进制数~ 解决方案三: 030是8进制的表示方式,转换成int十进制n

win7库功能的详细解释

库相信用过电脑一段时间的人都不陌生,但是如果刚刚用win7或者一直用xp系统的人,对于库肯定是完全不了解.因为在xp系统里面库的用处非常少,最少小编用了几年的xp重来没想过用库来方便自己存放文件. 1 关于win7库,微软给出的解答: 库是用于管理文档.音乐.图片和其他文件的位置.可以使用与在文件夹中浏览文件相同的方式浏览文件,也可以查看按属性(如日期.类型和作者)排列的文件.在某些方面,库类似于文件夹.例如,打开库时将看到一个或多个文件.但与文件夹不同的是,库可以收集存储在多个位置中的文件.这

c语言-请求帮我详细解释下这个程序,谢谢了

问题描述 请求帮我详细解释下这个程序,谢谢了 #include #include #define uchar unsigned char #define uint unsigned int #define WCOMM XBYTE[0x0000] #define RCOMM XBYTE[0x0001] #define WDATA XBYTE[0x0002] #define RDATA XBYTE[0x0003] void BusyWait() { while((RCOMM & 0x80) != 0

builder-麻烦大家帮我详细解释下下面这段与串口交互的代码,谢谢!

问题描述 麻烦大家帮我详细解释下下面这段与串口交互的代码,谢谢! void __fastcall TfrmPatient::edtDosageDblClick(TObject *Sender) { //read comm data,then set in edtDosage edit //open com port HANDLE hCom = CreateFile(g_ConfigManager.sComPort.c_str(),GENERIC_WRITE,0,NULL,OPEN_EXISTIN

mfc-为什么 0x1f5是win+m呢,请给出详细解释,谢谢

问题描述 为什么 0x1f5是win+m呢,请给出详细解释,谢谢 CWnd* pWnd = CWnd::FindWindow(TEXT(""Shell_TrayWnd"")NULL);pWnd->SendMessage(WM_HOTKEY0X1F5); 解决方案 这是windows规定的,没有为什么.

java 正则表达式-这条java中的替换字符串的正则表达式是什么意思?能不能详细解释一下

问题描述 这条java中的替换字符串的正则表达式是什么意思?能不能详细解释一下 replaceAll("([^u4e00-u9fa5]{1})([^u4e00-u9fa5]{1})", "$2") 解决方案 在计算机科学中,是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串.在很多文本编辑器或其他工具里,正则表达式通常被用来检索和/或替换那些符合某个模式的文本内容.许多程序设计语言都支持利用正则表达式进行字符串操作.例如,在Perl中就内建了一个功能

c语言-C语言选择题求详细解释

问题描述 C语言选择题求详细解释 已知:int a[3][4],*p=a[0];p+=7; ,那么与*p的值相同的是 A*(a+7) B*(&a[0]+7) C*(a[0]+3)D*(&a[1][1]+7) ====参考答案是B,求大侠给出详细解释 解决方案 就是偏移七个位置 然后再取值 解决方案二: 和之前回答的问题一样还是 指针的地址理解. 关键在于理解 &a[0]=p 解决方案三: 哪里出的考题?B也是错的,应该是: *(&a[0][0]+7) 解决方案四: a其实是

指针-C语言求教应该选哪个答案呢?并求详细解释

问题描述 C语言求教应该选哪个答案呢?并求详细解释 void *fun()此说明的含义是: A)fun函数无返回值 B)fun函数的返回值可以是任意的数据类型 C)fun函数的返回值是无值型的指针类型 D)指针fun指向一个函数,该函数无返回值 求教应该选哪个答案呢?并求详细解释 解决方案 答案选择:C 代码的意思是:定义一个函数指针. 比如:定义一个指向函数的指针,该函数有一个整形参数并返回一个整型值 int(*fun)(int): 再比如原来函数是void func(void): 那么定义的

javascript-求下面这条语句的详细解释,谢谢各位大神了

问题描述 求下面这条语句的详细解释,谢谢各位大神了 <a href="javascript:window.parent.addt('a<s:property value="id"/>','字表','/Module/Test3/List.action?testId=<s:property value="id"/>')"> 字表 </a> 解决方案 href中是JavaScript脚本,在window.