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

Android AIDL 必看内容

 2010-03-26 06:05:00 来源:WEB开发网   
核心提示:更好的设计Android软件应该熟悉掌握AIDL IPC机制,可以让你编写的组件类似Windows ActiveXCOM一样更好的复用,Android AIDL 必看内容,提供类似像Symbian那样的服务器机制,服务可以很好的解决在后台运行无UI的窗口,输入一个分支,输出一个客户列表}二、实现一个接口显示的提供一个导

更好的设计Android软件应该熟悉掌握AIDL IPC机制,可以让你编写的组件类似Windows ActiveXCOM一样更好的复用,提供类似像Symbian那样的服务器机制。服务可以很好的解决在后台运行无UI的窗口。我们创建一个aidl文件名为android123.aidl下面是示例代码,修改于Android SDK文档。

一、创建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,

1 2  下一页

Tags:Android AIDL

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