《安卓系统Android应用程序开发PPT教材_第7章后台服务(16).ppt》由会员分享,可在线阅读,更多相关《安卓系统Android应用程序开发PPT教材_第7章后台服务(16).ppt(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、7.3 远程服务n7.3.2 服务创建与调用n当数据以Parcel对象的形式传递到跨进程服务的内部时,onTransact()方法(第33行)将从Parcel对象中逐一的读取每个参数,然后调用Service内部制定的方法,并再将结果写入另一个Parcel对象,准备将这个Parcel对象返回给远程的调用者nParcel是Android系统中应用程序进程间数据传递的容器,能够在两个进程中完成数据的打包和拆包的工作,但Parcel不同于通用意义上的序列化,Parcel的设计目的是用于高性能IPC传输,因此不能够将Parcel对象保存在任何持久存储设备上7.3 远程服务n7.3.2 服务创建与调用q通
2、过继承Service类实现跨进程服务n实现跨进程服务需要建立一个继承android.app.Service的类,并在该类中通过onBind()方法返回IBinder对象,调用者使用返回的IBinder对象就可以访问跨进程服务nIBinder对象的建立通过使用IMathService.java内部的Stub类实现,并逐一实现在IMathService.aidl接口文件定义的函数7.3 远程服务n7.3.2 服务创建与调用q通过继承Service类实现跨进程服务n在RemoteMathServiceDemo示例中,跨进程服务的实现类是MathService.javan下面是MathService.
3、java的完整代码1.package edu.hrbeu.RemoteMathServiceDemo;import android.app.Service;import android.content.Intent;import android.os.IBinder;1.import android.widget.Toast;public class MathService extends Serviceprivate final IMathService.Stub mBinder=new IMathService.Stub()public long Add(long a,long b)ret
4、urn a+b;7.3 远程服务n7.3.2 服务创建与调用q通过继承Service类实现跨进程服务12.13.;14.Override15.public IBinder onBind(Intent intent)16.Toast.makeText(this,远程绑定:MathService,17.Toast.LENGTH_SHORT).show();18.return mBinder;19.20.Override21.public boolean onUnbind (Intent intent)22.Toast.makeText(this,取消远程绑定:MathService,23.Toas
5、t.LENGTH_SHORT).show();24.return false;25.26.http:/www.anzhuo.cc/forum-58-1.html 安卓HTC One X论坛 7.3 远程服务n7.3.2 服务创建与调用q通过继承Service类实现跨进程服务n第8行代码表明MathService继承于android.app.Servicen第9行代码建立IMathService.Stub的对象mBindern第10行代码实现了AIDL文件定义的跨进程服务接口n第18行代码在onBind()方法中,将mBinder返回给远程调用者n第16行和第22行代码分别是在绑定和取消绑定时,为用户产生的提示信息