Android中消息系统模型和Handler Looper

Android中消息系统模型和Handler Looper

ID:240252

大小:185.50 KB

页数:20页

时间:2017-07-12

Android中消息系统模型和Handler Looper_第1页
Android中消息系统模型和Handler Looper_第2页
Android中消息系统模型和Handler Looper_第3页
Android中消息系统模型和Handler Looper_第4页
Android中消息系统模型和Handler Looper_第5页
资源描述:

《Android中消息系统模型和Handler Looper》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、Android中消息系统模型和HandlerLooper  作为Android中大量使用的Handler,结合Thread使其具有众多的使用形式和方法,让我一时感觉这个东西有些玄乎,不明所以然,这到底是一个什么样的存在呢?通过网上资料和源码的学习,这个Handler也差不多弄清楚了,现在总结下这个学习结果。 一Handler作用和概念通过官方文档了解到Handler的大致概念是:  Handler能够让你发送和处理消息,以及Runnable对象;每个Handler对象对应一个Thread和Thread的消息队列。当你创建一个Handler时,它就和Thread的消息队列绑定在一起,然

2、后就可以传递消息和runnable对象到消息队列中,执行消息后就从消息队列中退出。   Handler的作用就是:调度消息和runnable对象去被执行;使动作在不同的线程中被执行。  当一个应用程序中进程被创建时,它的主线程专门运行消息队列(messageQueue),去管理顶层的应用程序相关的对象如:activity,broadcastReceiver,windows等,你可以创建你的Thread,和主线程进行交互——通过Handler,交互的方法就是通过post或者sendMessage。但是在你的新线程中,给定的Message或者Runnable,会在适当的时候的被调度和处理

3、。(即不会被立即处理——阻塞式)。  这是官方文档中对Handler描述的大致意思(英文比较烂翻译不定正确)。 从这些文档中我们大概了解到handler干了些什么:·  运行在某个线程上,共享线程的消息队列;·  接收消息、调度消息,派发消息和处理消息;·  实现消息的异步处理;基本上就是和消息有关,那么这实际上是在干什么呢?  ——建立消息处理模型/系统。    要学习Handler,看到肯定是和消息有关,可能还是需要先熟悉一下消息系统的构成和简单原理。下面就先学习一下消息系统的基本原理。二消息系统的基本原理和构成      从一般的消息系统模型的建立大致构成以下几个部分:    

4、l 消息原型    l 消息队列    l 发送消息    l 消息循环    l 消息获取    l 消息派发    l 消息处理大致模型图如下:         消息系统模型一般会包括以上七个部分(消息原型,消息队列,消息发送,消息循环,消息获取,消息派发,消息处理)。实际上的核心是消息队列和消息循环,其余部分都是围绕这两部分进行的。  从前面文档的分析中我们知道Handler就是用来建立消息处理的系统模型,那么和这里基本消息系统模型相比,那么Handler又是如何囊括这七个部分的呢?  在Android中对这六个部分进行了抽象成四个独立的部分:    Handler,Messa

5、ge,MessageQueue,Looper;·  Message就是消息原型,包含消息描述和数据,·  MessageQueue就是消息队列,·  Looper完成消息循环·  Handler就是驾驭整个消息系统模型,统领Message,MessgeQueue和Looper;    Handler能够实现消息系统模型,那么具体是如何进行工作的呢,下面探究一下这其中工作的方法和原理。 三Handler工作原理分析  要了解Handler工作原理,先看一下这个系统模型具体组成的层次结构框架是个什么样的。        Looper:  实现Thread的消息循环和消息派发,缺省情况下T

6、hread是没有这个消息循环的既没有Looper;需要主动去创建,然后启动Looper的消息循环loop;与外部的交互通过Handler进行;MessageQueue:  消息队列,由Looper所持有,但是消息的添加是通过Handler进行;    消息循环和消息队列都是属于Thread,而Handler本身并不具有Looper和MessageQueue;但是消息系统的建立和交互,是Thread将Looper和MessageQueue交给某个Handler维护建立消息系统模型。  所以消息系统模型的核心就是Looper。消息循环和消息队列都是由Looper建立的,而建立Handle

7、r的关键就是这个Looper。  一个Thread同时可以对应多个Handler,一个Handler同时只能属于一个Thread。Handler属于哪个Thread取决于Handler在那个Thread中建立。  在一个Thread中Looper也是唯一的,一个Thread对应一个Looper,建立Handler的Looper来自哪个Thread,Handler属于哪个Thread。  故建立Thread消息系统,就是将Thread的Looper交给Han

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。