赞
踩
AIDL全称Android Interface Definition Language 安卓接口定义语言,是Android开发中常用的一种跨进程通信的方式。
使用AIDL编写的文件是aidl文件,aidl文件在程序运行中并不起作用,起作用的是Android SDK工具基于aidl文件生成的Java语言的IBinder接口。这也意味着,你可以自定义IBinder接口来实现AIDL相同的效果。
package com.example.android
interface IRemoteService {
void setBookName(String name);
int getBookId();
}
AIDL 支持下列数据类型:
Java基本数据类型(如 int、long、char、boolean 等)、String、CharSequence、List、Map
创建Binder类的实例,实现aidl中的方法
private final IRemoteService.Stub binder = new IRemoteService.Stub() {
public int getBookId(){
return 1;
}
public void setBookName(String aString) {
// Does nothing
}
};
通过Service的onBind方法,向客户端返回Binder对象。
public class RemoteService extends Service { @Override public void onCreate() { super.onCreate(); } @Override public IBinder onBind(Intent intent) { // Return the interface return binder; } private final IRemoteService.Stub binder = new IRemoteService.Stub() { public int getBookId(){ return 1; } public void setBookName(String aString) { // Does nothing } }; }
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。