`
mmdev
  • 浏览: 12939039 次
  • 性别: Icon_minigender_1
  • 来自: 大连
文章分类
社区版块
存档分类
最新评论

Handler Message相关说明

 
阅读更多

MessageQueue
消息队列MessageQueue是以执行时间为序的优先级队列,先发送的消息先执行
Message只是一段数据,里面说明了要做什么,但并不知如何做。Message放入队列后,在处理这些消息时到底怎么做?这就引入了Handler
Hanlder
Handler对消息队列的enqueueMessage做了包装,同时,把Message的target设成了自己,即为Message指定执行的行为,这样当前Message被处理的时候就会调用Handler的dispatchMessage,而这个函数就会调用你要实现的虚函数handlerMessage。经过消息队列转了一圈,还是调用自己实现的函数,但是同步操作变成了一步操作。
Looper
Message放在消息队列里,这时Looper会调用自己的loop函数一直循环处理队列中的消息,直到遇上一个没有target的Message。由此可见Looper总是和一个MessageQueue关联起来
Thread
loop只是一个函数,它也需要别人来执行它。由于它一执行就会阻塞在那里,所以一定需要一个线程来调用
class LooperThread extends Thread {
public Handler mHandler;
public void run() {
Looper.prepare();
mHandler = new Handler(){
public void handlerMessage(Message msg){

}
};
Looper.loop();
}
}
一个Looper也总是和一个Thread关联起来,不过不一定要创建新线程,可以是主线程的。Handler和Thread不是一一对应的,理论上,在一个LooperThread中,可以有任何多个Handler,每个消息都可以指定不同的Handler,因为每个消息都有不同的Handler,因为每个消息都可以有不同的行为。
在创建Handler时并不会创建Thread,它只取当前线程的Looper的MessageQueue

分享到:
评论

相关推荐

    Android中Handler与Message的简单实例

    主要介绍了Android中Handler与Message的简单实例的相关资料,这里提供实例来说明线程Handler与message 的结合使用,需要的朋友可以参考下

    Android_Studio_Handler:Android Handler 执行绪教学

    (1)Activity.runOnUiThread(Runnable) (2)View.post(Runnable) (3)View.postDelayed(Runnable,long) (4)Handler (5)AsyncTask在此说明Handler 使用规则####★Outline执行绪间通讯(如:worker执行绪将UI更新程式片段...

    一个简单小巧的Handler转发

    作者Jacksgong,源码MessageHandler,这个组件是一个简单小巧的Handler转发,主要是为了对外提供绑定目标Handler对象的所有消息的暂停、恢复、废弃、取消所有队列中的消息,用于整个完全解耦消息队列的全局性有效...

    WeiXinMPSDK-NET4.0

    Senparc.Weixin.MP SDK 微信公众平台开发教程(六):了解MessageHandler Senparc.Weixin.MP SDK 微信公众平台开发教程(七):解决用户上下文(Session)问题 Senparc.Weixin.MP SDK 微信公众平台开发教程(八):...

    MINA/JAVA游戏服务端源码

    说明:该服务器框架试用于需要频繁修改...game.message.handler:消息处理者(功能实现的地方,上接service,下连DAO) net.mina.protocol:自定义通信协议 net.mina.service:网络层(MINA框架,这个不多说,你懂的)

    js弹出窗口示例

    ymPrompt.alert(message,width,height,title,handler,maskAlphaColor,maskAlpha) //消息提示类型 ymPrompt.succeedInfo(....) //成功信息类型 ymPrompt.errorInfo(...) //错误信息类型 ymPrompt....

    java/android 开发面试题

    请解释下在单线程模型中Message、Handler、Message Queue、Looper之间的关系。 11. AIDL的全称是什么?如何工作?能处理哪些类型的数据? 12. 请解释下Android程序运行时权限与文件系统权限的区别。(Edited by ...

    android 面试2

    请解释下在单线程模型中Message、Handler、Message Queue、Looper之间的关系。  答:Message Queue(消息队列):用来存放通过Handler发布的消息,通常附属于某一个创建它的线程,可以通过Looper.myQueue()得到当前...

    Android 线程thread的两种实现方法(必看)

    三: Handler 机制,它是Runnable和Activity交互的桥梁,在run方法中发送Message,在Handler里,通过不同的Message执行不同的任务。 下面分别给出两种线程的实现方法,其一,扩展java.lang.Thread类,也就是把run()...

    大名鼎鼎SWFUpload- Flash+JS 上传

     file_dialog_complete_handler : file_dialog_complete_function, 当文件选取对话框关闭后触发的事件处理函数  upload_start_handler : upload_start_function, 开始上传文件前触发的事件处理函数  upload_...

    cool_dispatcher:一个基于消息队列,zookeeper和python线程操作的简单消息批处理调度模块

    A simple message batch scheduling module based on message queue, zookeeper, and python thread operation. 一个从消息消费业务场景中总结,基于队列组件+zookeeper+python线程操作实现的消息批处理场景调度模块....

    DWR.xml配置文件说明书(含源码)

    DWR.xml配置文件说明书 1、 建立dwr.xml 配置文件 任何一个dwr.xml的文件都需要包含DWR DOCTYPE的声明行,格式如下: <!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN" ...

    好看好用的alert提示框

    如ymprompt.alert('消息内容',300,200,'消息标题',handler)和ymprompt.alert({message:'消息内容',width:300,height:200,title:'消息标题',handler:handler}),这两种写法是等价的。 10、只需要一个回调函数,可捕获...

    漂亮的消息提示框 消息提示组件 Javascript写的

    如ymprompt.alert('消息内容',300,200,'消息标题',handler)和ymprompt.alert({message:'消息内容',width:300,height:200,title:'消息标题',handler:handler}),这两种写法是等价的。 10、只需要一个回调函数,可捕获...

    javatech:汇总Java开发中常见的主流技术的应用,特性,原理

    :open_book:内容框架 :books: :books: :books: 关键词: SqlSession , Mapper , Executor , StatementHandler , TypeHandler , ParameterHandler , ResultSetHandler消息数值消息类型(Message Queue,简称MQ...

    ymprompt消息提示组件4.0【js插件弹出框美化版】

    参数顺序:message,width,height,title,handler,maskAlphaColor,maskAlpha, iframe,icoCls,btn,autoClose,fixPosition,dragOut,titleBar,showMask,winPos,winAlpha (推荐)第二种即JSON的传入方式,需要指定字段名,...

    distributed-transaction-process:分布式事务解决方案

    模块说明 ms-core:公共模块 ms-discovery-eureka:服务注册与发现 reliable-message-transaction:可靠消息最终一致性的示例 tcc-transaction:TCC补偿性的示例 待补充最大努力通知型 解决方案 1.可靠消息最终一致...

    android-framework-hal

    8.6 Handler 与 Message 的解析与实作细节 8.7 Error Handling 9.专题探讨 9.1 整合驱动程式至Android 框架 9.2 撰写Anroid应用程式以控制LED 9.3 标准的Android HAL 架构 9.4 HAL Stub OOAD & Implementation

    pseudoboard_client:伪板的客户端

    代码修改客户端文件: -MessageHandler.java-将服务器字符串修改为您希望使用的地址。 -Login.java-将端口int修改为您要使用的任何端口(默认为21898)。 服务器文件: -BoardServer.java-将DEFAULT_PORT int修改为...

    Android中ProgressBar用法简单实例

    在android中会经常用到ProgressBar,下面通过举例来说明如何使用ProgressBar。 import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android....

Global site tag (gtag.js) - Google Analytics