概述
Android interface define language,android接口定义语言;用于生成可以在Android设备上两个进程之间进程通信(IPC,interprocess communication)的代码。
使用步骤
A程序
1、在某个包下创建A.aidl文件;(ADT会在gen目录自动生成A.java文件)
1.png
2、在A.aidl文件下定义自己需要的接口
3、创建一个myService类继承Service类,在这个类中创建一个内部类去实现aidl中的接口,并在onBind()方法中返回此类对象。注意:创建类是A.Stub类public class AIDLService extends Service {
@Override
public void onCreate() {
super.onCreate();
}
@Nullable
@Override
public IBinder onBind(Intent intent) {
return new IServiceAIDL.Stub(){
@Override
public int getPrice() throws RemoteException {
return 0;
}
@Override
public String getName(String str) throws RemoteException {
return null;
}
};
}
}
4、主菜单配置service组件
5、客户端需要创建ServiceConnection类,重写onServiceConnection()方法,在此方法中接受IBinder。(如果客户端调用的不是同一个应用,需要将AIDL文件带包拷贝到应程序文件目录中)IServiceAIDL remoteAIDL;
private ServiceConnection serviceConnection = new ServiceConnection() {
@Override
public void onServiceConnected(ComponentName componentName, IBinder iBinder) {
remoteAIDL = IServiceAIDL.Stub.asInterface(iBinder);
}
@Override
public void onServiceDisconnected(ComponentName componentName) {
}
};
参考地址