WEB开发网
开发学院手机开发Android 开发 Android AIDL必看内容 阅读

Android AIDL必看内容

 2010-05-27 03:49:00 来源:WEB开发网   
核心提示:一、创建AIDL文件package cn.com.android123;引入声明 import cn.com.android123.IAtmService;// 声明一个接口,这里演示的是银行ATM程序interface IBankAccountService {int getAccountBalance(); //返

一、创建AIDL文件

package cn.com.android123;

引入声明 import cn.com.android123.IAtmService;

// 声明一个接口,这里演示的是银行ATM程序

interface IBankAccountService {

int getAccountBalance(); //返回整数,无参数

void setOwnerNames(in List names); //不返回,包含一个传入List参数

BankAccount createAccount(in String name, int startingDeposit, in IAtmService atmService); //返回一个自定义类型

int getCustomerList(in String branch, out String[] customerList); //返回整形,输入一个分支,输出一个客户列表

}

二、实现一个接口

显示的提供一个导出接口,为客户端提供绑定。

public class RemoteService extends Service {

@Override

public IBinder onBind(Intent intent) {

if (IRemoteService.class.getName().equals(intent.getAction())) {

return mBinder;

}

if (ISecondary.class.getName().equals(intent.getAction())) {

return mSecondaryBinder;

}

return null;

}

//第一个接口

private final IRemoteService.Stub mBinder = new IRemoteService.Stub() {

public void registerCallback(IRemoteServiceCallback cb) {

if (cb != null) mCallbacks.register(cb);

}

public void unregisterCallback(IRemoteServiceCallback cb) {

if (cb != null) mCallbacks.unregister(cb);

}

};

//第二个接口

private final ISecondary.Stub mSecondaryBinder = new ISecondary.Stub() {

public int getPid() {

return Process.myPid();

}

public void basicTypes(int anInt, long aLong, boolean aBoolean,

float aFloat, double aDouble, String aString) {

}

};

}

三、客户端交互

通过Android.os提供的Parcelable类型来传递数据,通常我们使用Eclipse+ADT插件来完成,在Eclipse中在 Package

1 2 3 4 5 6  下一页

Tags:Android AIDL

编辑录入:coldstar [复制链接] [打 印]
赞助商链接