Android中消息系统模型和Handler Looper.doc

Android中消息系统模型和Handler Looper.doc

ID:62023464

大小:125.00 KB

页数:18页

时间:2021-04-14

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

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

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

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

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

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

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

6、样的。      Looper:  实现Thread的消息循环和消息派发,缺省情况下Thread是没有这个消息循环的既没有Looper;需要主动去创建,然后启动Looper的消息循环loop;与外部的交互通过Handler进行;MessageQueue:  消息队列,由Looper所持有,但是消息的添加是通过Handler进行;  消息循环和消息队列都是属于Thread,而Handler本身并不具有Looper和MessageQueue;但是消息系统的建立和交互,是Thread将Looper和MessageQueue交给某个Handler维护建立

7、消息系统模型。高考 所以消息系统模型的核心就是Looper。消息循环和消息队列都是由Looper建立的,而建立Handler的关键就是这个Looper。  一个Thread同时可以对应多个Handler,一个Handler同时只能属于一个Thread。Handler属于哪个Thread取决于Handler在那个Thread中建立。  在一个Thread中Looper也是唯一的,一个Thread对应一个Looper,建立Handler的Looper来自哪个Thread,Handler属于哪个Thread。故建立Thread消息系统,就是将Threa

8、d的Looper交给Handler去打理,实现消息系统模型,完成消息的异步处理。Handler与Thread及Looper的关系可以用下

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

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

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