- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
绑定Service 创建绑定服务 三种方法定义接口 使用 AIDL AIDL(Android 接口定义语言)执行所有将对象分解成原语的工作,操作系统可以识别这些原语并将它们编组到各进程中,以执行 IPC。采用 Messenger 的方法实际上是以 AIDL 作为其底层结构。如上所述,Messenger 会在单一线程中创建包含所有客户端请求的队列,以便服务一次接收一个请求。不过,如果想让服务同时处理多个请求,则可直接使用 AIDL。 在此情况下,服务必须具备多线程处理能力,并采用线程安全式设计。 如需直接使用 AIDL,必须创建一个定义编程接口的 .aidl 文件。Android SDK 工具利用该文件生成一个实现接口并处理 IPC 的抽象类,随后可在服务内对其进行扩展。 4 绑定Service 扩展 Binder 类 基本步骤 在服务中,创建一个可满足下列任一要求的 Binder 实例: 包含客户端可调用的公共方法 返回当前 Service 实例,其中包含客户端可调用的公共方法 或返回由服务承载的其他类的实例,其中包含客户端可调用的公共方法 从 onBind() 回调方法返回此 Binder 实例。 在客户端中,从 onServiceConnected() 回调方法接收 Binder,并使用提供的方法调用绑定服务。 4 绑定Service 扩展 Binder 类 示例:创建Service LocalBinder 为客户端提供 getService() 方法,以检索 LocalService 的当前实例。这样,客户端便可调用服务中的公共方法。 例如,客户端可调用服务中的 getRandomNumber()。 4 绑定Service 扩展 Binder 类 示例:绑定Service Activity 会绑定到 LocalService 并调用 getRandomNumber()。 4 绑定Service 使用 Messenger 基本步骤 服务实现一个 Handler,由其接收来自客户端的每个调用的回调 Handler 用于创建 Messenger 对象(对 Handler 的引用) Messenger 创建一个 IBinder,服务通过 onBind() 使其返回客户端 客户端使用 IBinder 将 Messenger(引用服务的 Handler)实例化,然后使用后者将 Message 对象发送给服务 服务在其 Handler 中(具体地讲,是在 handleMessage() 方法中)接收每个 Message 这样,客户端并没有调用服务的“方法”。而客户端传递的“消息”(Message 对象)是服务在其 Handler 中接收的。 4 绑定Service 使用 Messenger 示例:创建Service 服务就是在 Handler 的 handleMessage() 方法中接收传入的 Message,并根据 what 成员决定下一步操作。 4 绑定Service 使用 Messenger 示例:绑定Service 客户端只需根据服务返回的 IBinder 创建一个 Messenger,然后利用 send() 发送一条消息。 4 绑定Service 绑定到服务 调用 bindService() 绑定到服务。 绑定是异步的。要接收 IBinder,客户端必须创建一个 ServiceConnection 实例,并将其传递给 bindService()。ServiceConnection 包括一个回调方法,系统通过调用它来传递 IBinder。 无法从广播接收器绑定到服务。 4 绑定Service 绑定到服务 基本步骤 实现 ServiceConnection。 onServiceConnected()系统会调用该方法以传递服务的onBind() 方法返回的 IBinder。 onServiceDisconnected() 系统会在与服务的连接意外中断时(例如当服务崩溃或被终止时)调用该方法。当客户端取消绑定时,系统“绝对不会”调用该方法。 调用 bindService() 以传递 ServiceConnection 实现。 当系统调用onServiceConnected() 回调方法时,可以使用接口定义的方法开始调用服务。 要断开与服务的连接,调用 unbindService()。 4 绑定Service 绑定到服务 bindService():bindService(intent, mConnection, Context.BIND_AUTO_CREATE); 第一个参数是一个 Intent,用于显式命名要绑定的服务(但 Intent 可能是隐式的) 第二个参数是 ServiceConnection 对象 第三个参数是一个指示
您可能关注的文档
- 管理心理学 第二章 个体心理.pptx
- 管理心理学 第一章 管理心理学概述.pptx
- 《C语言程序设计基础》第7章 数组.pptx
- After Effects 动态图形与动效设计 教学教案.docx
- 管理心理学 第八章 领导心理.pptx
- 第3章电子相册-新修改.pptx
- 第4章 广告设计-新修改.pptx
- 第6章电子阅读物.pptx
- 第7章 动画片制作.pptx
- 第8章 游戏制作.pptx
- Android 9.2 Android文件存储课件.ppt
- Android 7.2.3 通知设计课件.ppt
- Android 7.1 菜单设计课件.ppt
- Android 7.2 对话框设计课件.ppt
- Android 6.2 CardView与RecyclerView课件课件课件.ppt
- Android 9.3 SQLite数据库存储课件.ppt
- Android 12.3 存储访问框架.ppt
- Android 12.4 使用ContentObserver监听数据变化.ppt
- Android 13.1 使用ConnectivityManager管理网络.ppt
- Android 12.1 访问系统ContentProvider课件.ppt
最近下载
- 机动车检测公司客户满意度调查表.docx VIP
- 1.DEC-OGP-R-QM-001-2020-1 油气管道工程质量监督实施规定.pdf VIP
- 机动车检测公司满意度调查问卷.docx VIP
- 临沂市城市规划管理相关控制标准(新修订)2012(未颁布已内部实施).doc
- 新统编版语文二年级上册《看图写话《苹果园》教学课件.pptx VIP
- 中国居民口腔健康状况第四次中国口腔健康流行病学调查报告.pdf VIP
- 2025年无锡市江阴市事业单位考试试题真题及答案.pdf VIP
- (2025秋新版)北师大版八年级生物上册全册教案.pdf
- 消费者心理与行为分析PPT(第四版)完整全套教学课件.pptx VIP
- 理论力学--第五章 点的运动学.ppt VIP
原创力文档


文档评论(0)