安卓消息机制详解

安卓消息机制详解

ID:11472394

大小:838.50 KB

页数:61页

时间:2018-07-12

安卓消息机制详解_第1页
安卓消息机制详解_第2页
安卓消息机制详解_第3页
安卓消息机制详解_第4页
安卓消息机制详解_第5页
资源描述:

《安卓消息机制详解》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、Android消息处理机制2011-10-2813:362951人阅读评论(7)收藏举报目录(?)[+]1.Android的消息机制(一)2.Android消息处理机制(二)3.用Android线程间通信的Message机制4.Android中Handler的使用方法——在子线程中更新界面5.线程的魔法师Looper6.异步处理大师Handler7.封装任务MessageGoogle参考了Windows的消息处理机制,在Android系统中实现了一套类似的消息处理机制。学习Android的消息处理机制,有几个概念(类)必须了解:1.      Message

2、消息,理解为线程间通讯的数据单元。例如后台线程在处理数据完毕后需要更新UI,则可发送一条包含更新信息的Message给UI线程。2.      MessageQueue消息队列,用来存放通过Handler发布的消息,按照先进先出执行。3.      HandlerHandler是Message的主要处理者,负责将Message添加到消息队列以及对消息队列中的Message进行处理。4.      Looper循环器,扮演MessageQueue和Handler之间桥梁的角色,循环取出MessageQueue里面的Message,并交付给相应的Handler进

3、行处理。5.   线程UIthread通常就是mainthread,而Android启动程序时会替它建立一个MessageQueue。每一个线程里可含有一个Looper对象以及一个MessageQueue数据结构。在你的应用程序里,可以定义Handler的子类别来接收Looper所送出的消息。运行机理:      每个线程都可以并仅可以拥有一个Looper实例,消息队列MessageQueue在Looper的构造函数中被创建并且作为成员变量被保存,也就是说MessageQueue相对于线程也是唯一的。Android应用在启动的时候会默认会为主线程创建一个Lo

4、oper实例,并借助相关的Handler和Looper里面的MessageQueue完成对Activities、Services、BroadcaseReceivers等的管理。而在子线程中,Looper需要通过显式调用Looper.Prepare()方法进行创建。Prepare方法通过ThreadLocal来保证Looper在线程内的唯一性,如果Looper在线程内已经被创建并且尝试再度创建"OnlyoneLoopermaybecreatedperthread"异常将被抛出。       Handler在创建的时候可以指定Looper,这样通过Handler

5、的sendMessage()方法发送出去的消息就会添加到指定Looper里面的MessageQueue里面去。在不指定Looper的情况下,Handler绑定的是创建它的线程的Looper。如果这个线程的Looper不存在,程序将抛出"Can'tcreatehandlerinsidethreadthathasnotcalledLooper.prepare()"。       整个消息处理的大概流程是:1.包装Message对象(指定Handler、回调函数和携带数据等);2.通过Handler的sendMessage()等类似方法将Message发送出去;3

6、.在Handler的处理方法里面将Message添加到Handler绑定的Looper的MessageQueue;4.Looper的loop()方法通过循环不断从MessageQueue里面提取Message进行处理,并移除处理完毕的Message;5.通过调用Message绑定的Handler对象的dispatchMessage()方法完成对消息的处理。       在dispatchMessage()方法里,如何处理Message则由用户指定,三个判断,优先级从高到低:1.Message里面的Callback,一个实现了Runnable接口的对象,其中r

7、un函数做处理工作;2.Handler里面mCallback指向的一个实现了Callback接口的对象,由其handleMessage进行处理;3.处理消息Handler对象对应的类继承并实现了其中handleMessage函数,通过这个实现的handleMessage函数处理消息。   Android的消息机制(一)android有一种叫消息队列的说法,这里我们可以这样理解:假如一个隧道就是一个消息队列,那么里面的每一部汽车就是一个一个消息,这里我们先忽略掉超车等种种因素,只那么先进隧道的车将会先出,这个机制跟我们android的消息机制是一样的。一、  

8、 角色描述1.Looper:(相当于隧道)一个线程可

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

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

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