1.客户端
1)定义aidl文件。
2)service内使用接口的Stub
public class AIDLServerService extends Service {
/**
* 返回绑定
*/
@Override
public IBinder onBind(Intent intent) {
return mBinder;
}
/**
* 初始化根据AIDL文件生成的Stub
*/
private IAIDLServerService.Stub mBinder = new Stub() {
/**
* 实现定义的接口
*/
public Person getPerson() throws RemoteException {
Person p = new Person();
return p;
}
};
2.服务器
1)定义aidl文件。
2)接口.Stub.asInterface来接收service
private IAIDLServerService mIaidlServerService = null;
/**
* 服务连接
*/
private ServiceConnection mConnection = new ServiceConnection() {
public void onServiceDisconnected(ComponentName name) {
mIaidlServerService = null;
}
/**
* 服务连接成功
*/
public void onServiceConnected(ComponentName name, IBinder service) {
mIaidlServerService = IAIDLServerService.Stub.asInterface(service);
// aidl实现进程间通信
try {
Person person = mIaidlServerService.getPerson();
String str = "姓名:" + person.getName() + "\n" + "年龄:"
+ person.getAge();
mAIDLView.setText(str);
} catch (RemoteException e) {
e.printStackTrace();
}
}
};