首先需要在src下的main目录下创建aidl文件夹
aidl分为客户端和服务端
1.先说客户端
创建例如com.android.aidl包名下创建一个AidlSerData.aidl文件
里面是一个接口包含一个提供数据的方法
interface AidlSerData {
String dataReport(String dataValue);
}
服务端也创建一个相同包名的aidl文件 并且创建一个 AIDLService
private IBinder iBinder = new AidlSerData.Stub() {
@Override
public String dataReport(String dataValue) throws RemoteException {
//获取客户端传过来的数据
return dataValue;
}
};
@Override
public void onCreate() {
super.onCreate();
}
@Override
public IBinder onBind(Intent intent) {
return iBinder;
}
客户端进行启动service
service = new Intent(LoginActivity.this, AIDLService.class);
bindService(service, serviceConnectionIDataReport, Context.BIND_AUTO_CREATE);
private AidlSerData aidlSerData;
private ServiceConnection serviceConnectionIDataReport = new ServiceConnection() {
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
aidlSerData = AidlSerData.Stub.asInterface(service);
try {
if (aidlSerData != null) {
//发送数据
aidlSerData.dataReport(jsonBaseProbeBean);
}
} catch (Exception e) {
e.printStackTrace();
Log.e("ProBeUtils", "Exception: " + e.getMessage());
}
}
@Override
public void onServiceDisconnected(ComponentName name) {
Log.e("ProBeUtils", "onServiceDisconnected: " + name);
}
};
这样就可以愉快的使用了,别忘了service需要在清单文件中注册,可以根据需要添加对应action