- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Handler和手势 学习目的 1、掌握Handler以及线程数据传递技术。 2、Gesture识别技术简介和应用。 Handler机制 andriod提供了Handler 和 Looper 来满足线程间的通信。Handler先进先出原则。Looper类用来管理特定线程内对象之间的消息交换(MessageExchange)。 1).Looper: 一个线程可以产生一个Looper对象,由它来管理此线程里的MessageQueue(消息队列)。? 2).Handler: 你可以构造Handler对象来与Looper沟通,以便push新消息到MessageQueue里;或者接收Looper从Message Queue取出)所送来的消息。 3).Message Queue(消息队列):用来存放线程放入的消息。? 4).线程:UIthread 通常就是main thread,而Android启动程序时会替它建立一个MessageQueue。 消息的创建流程 Handler发送消息? Handler创建消息 每一个消息都需要被指定的Handler处理,通过Handler创建消息便可以完成此功能。Android消息机制中引入了消息池。Handler创建消息时首先查询消息池中是否有消息存在,如果有直接从消息池中取得,如果没有则重新初始化一个消息实例。使用消息池的好处是:消息不被使用时,并不作为垃圾回收,而是放入消息池,可供下次Handler创建消息时使用。消息池提高了消息对象的复用,减少系统垃圾回收的次数。 Handler创建消息 Handler发送消息 UI主线程初始化第一个Handler时会通过ThreadLocal创建一个Looper,该Looper与UI主线程一一对应。使用ThreadLocal的目的是保证每一个线程只创建唯一一个Looper。之后其他Handler初始化的时候直接获取第一个Handler创建的Looper。Looper初始化的时候会创建一个消息队列MessageQueue。至此,主线程、消息循环、消息队列之间的关系是1:1:1。Hander持有对UI主线程消息队列MessageQueue和消息循环Looper的引用,子线程可以通过Handler将消息发送到UI线程的消息队列MessageQueue中。 Handler发送消息 Handler创建消息 UI主线程通过Looper循环查询消息队列UI_MQ,当发现有消息存在时会将消息从消息队列中取出。首先分析消息,通过消息的参数判断该消息对应的Handler,然后将消息分发到指定的Handler进行处理。 Handler创建消息 Gesture手势 Android Touch Screen 与传统Click Touch Screen不同,会有一些手势(Gesture),例如Fling,Scroll等等。这些Gesture会使用户体验大大提升。Android中的Gesture识别(detector)是通过GestureDetector.OnGestureListener接口实现的。 首先,Android事件处理机制是基于Listener实现的,比如触摸屏相关的事件,就是通过onTouchListener实现; 其次,所有View的子类都可以通过setOnTouchListener()、setOnKeyListener()等方法来添加对某一类事件的Listener; 第三,Listener一般会以Interface的方式来提供,其中包含一个或多个abstract方法,我们需要实现这些方法来完成onTouch()、onKey()等操作。这样,程序便可以在特定的事件被dispatch到该view的时候,通过callback函数给予适当的响应。 案例 总结 Message:消息,其中包含了消息ID,消息处理对象以及处理的数据等,由MessageQueue统一列队,终由Handler处理。 Handler:处理者,负责Message的发送及处理。使用Handler时,需要实现handleMessage(Message msg)方法来对特定的Message进行处理,例如更新UI等。 MessageQueue:消息队列,用来存放Handler发送过来的消息,并按照FIFO规则执行。当然,存放Message并非实际意义的保存,而是将Message以链表的方式串联起来的,等待Looper的抽取。 Looper:消息泵,不断地从MessageQueue中抽取Messag
您可能关注的文档
- Access 2010--第5章 查询对象的设计与应用第5-2讲.ppt
- Access 2010--第10章 窗体对象的设计及应用第10-3讲.ppt
- Access 2010--第10章 窗体对象的设计及应用第10-4讲.ppt
- Access 2010--第11章 报表对象的设计及应用第11-1讲 报表概述 .ppt
- Access 2010--第11章 报表对象的设计及应用第11-0讲.ppt
- Access 2010--第11章 报表对象的设计及应用第11-2讲 使用向导创建报表对象.ppt
- Access 2010--第11章 报表对象的设计及应用第11-5讲 报表对象的完善和美化.ppt
- Access 2010数据库基础与应用项目式教程1 创建和管理数据库.ppt
- Access 2010数据库基础与应用项目式教程2 创建和管理数据表.ppt
- Access 2010--第11章 报表对象的设计及应用第11-4讲.ppt
- Android开发案例教程与项目实战第3章 界面视图ListView.ppt
- Android开发案例教程与项目实战第3章 界面视图ViewPager.ppt
- Android开发案例教程与项目实战第3章 界面视图常用控件.ppt
- Android开发案例教程与项目实战第3章 界面视图传感器应用开发.ppt
- Android开发案例教程与项目实战第3章 界面视图基础控件.ppt
- Android开发与应用1 Android平台概述.ppt
- Android开发与应用2 Android开发环境.ppt
- Android开发与应用3 第一个Android应用程序.ppt
- Android开发与应用4 Android用户界面设计.ppt
- Android开发与应用5 视图界面布局.ppt
原创力文档


文档评论(0)