<span style="font-size:14px;">package com.dlj.testservice;
interface AIDLService {
void print();
} </span>
1.上面是aidl的格式
2.在提供远程服务的service的onbind方法中 返回实现了AIDLService.Stub的对象
public class TestService extends Service {
IBinder binder=new aa();
@Override
public IBinder onBind(Intent intent) {
System.out.println("bind");
return binder;
}
class aa extends AIDLService.Stub{
@Override
public void print() throws RemoteException {
System.out.println("succcess");
}
}
}
3.copy aidl文件到要调用远程service 的工程中 注意包名要一致
4.在要调用远程service中的通过bindService(intent, conn, BIND_AUTO_CREATE)来调用远程serviceServiceConnection conn=new MyConnect;
<span style="font-size:14px;"><span style="white-space: pre;"> </span>class MyConnection implements ServiceConnection {
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
asInterface = AIDLService.Stub.asInterface(service);//通过aidl的</span><span style="font-size: 14px; font-family: Arial, Helvetica, sans-serif;"><span style="color:#ff0000;">asInterface来返回远程service对象</span></span><span style="font-size:14px;">
try {
asInterface.print();
} catch (RemoteException e) {
e.printStackTrace();
}
System.out.println("onServiceConnected");
}
@Override
public void onServiceDisconnected(ComponentName name) {
System.out.println("onServiceDisconnected");
}
}
</span>