第7章后台服务.ppt

  1. 1、本文档共80页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
7.3 远程服务 7.3.3 数据传递 AIDL支持的数据类型表 类型 说明 需要引入 Java语言的基本类型 包括boolean、byte、short、int、float和double等 否 String java.lang.String 否 CharSequence java.lang.CharSequence 否 List 其中所有的元素都必须是AIDL支持的数据类型 否 Map 其中所有的键和元素都必须是AIDL支持的数据类型 其它AIDL接口 任何其它使用AIDL语言生成的接口类型 是 Parcelable对象 实现Parcelable接口的对象 是 7.3 远程服务 7.3.3 数据传递 下面以ParcelMathServiceDemo示例为参考,说明如何在远程服务中使用自定义数据类型 这个示例是RemoteMathServiceDemo示例的延续 定义了MathService服务,同样可以为远程调用者提供加法服务 同样也是没有启动界面,因此在模拟器的调试过程与RemoteMathServiceDemo示例相同 不同之处在于MathService服务增加了“全运算”功能 在接收到输入参数后,将向调用者返回一个包含“加、减、乘、除”全部运算结果的对象。这个对象是一个自定义的类,为了能够使其它AIDL文件可使用这个自定义类,需要使用AIDL语言声明这个类 7.3 远程服务 7.3.3 数据传递 ParcelMathServiceDemo示例的文件结构如下图所示 7.3 远程服务 7.3.3 数据传递 首先建立AllResult.aidl文件,声明AllResult类 package edu.hrbeu.ParcelMathServiceDemo; 1 parcelable AllResult; 在IMathService.aidl文件中,代码第6行为全运算增加了新的函数ComputeAll(),该函数的返回值就是在AllResult.aidl文件中定义AllResult 同时,为了能够使用自定义数据结构AllResult,在代码中需引入了edu.hrbeu.ParcelMathServiceDemo.AllResult包 第2行和第6行是新增的代码,其它的代码与RemoteMathServiceDemo示例相同 7.3 远程服务 7.3.3 数据传递 1 package edu.hrbeu.ParcelMathServiceDemo; 2 import edu.hrbeu.ParcelMathServiceDemo.AllResult; 3 4 interface IMathService { 5 long Add(long a, long b); 6 AllResult ComputeAll(long a, long b); 7 } 7.3 远程服务 7.3.3 数据传递 在AIDL文件定义完毕后,下一步来介绍如何构造AllResult类 AllResult类除了基本的构造函数以外,还需要有以Parcel对象为输入的构造函数,并且需要重载打包函数writeToParcel() AllResult.java完整代码如下 1 package edu.hrbeu.ParcelMathServiceDemo; 2 3 import android.os.Parcel; 4 import android.os.Parcelable; 5 6 public class AllResult implements Parcelable { 7.3 远程服务 7.3.3 数据传递 AllResult.java的完整代码 7 public long AddResult; 8 public long SubResult; 9 public long MulResult; 10 public double DivResult; 11 12 public AllResult(long addRusult, long subResult, long mulResult, double divResult){ 13 AddResult = addRusult; 14 SubResult = subResult; 15 MulResult = mulResult; 16 DivResult = divResu

您可能关注的文档

文档评论(0)

希望之星 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档