一下2段代码都写在service中,其中AIDLService和MyInterface都是自己定义的。
这2种写法有什么区别,我感觉用接口就够了,为什么还搞出一个AIDL使用AIDL:private final AIDLService.Stub mBinder = new AIDLService.Stub() {
@Override
public void invokCallBack() throws RemoteException {
Rect1 rect = new Rect1();
callback.performAction(rect);
}
};public IBinder onBind(Intent t) {
return mBinder;
}
使用接口:private class MyBinder extends Binder implements MyInterface{ @Override
public void invokCallBack(String packagename) {
invokCallBack(packagename);
}}
public IBinder onBind(Intent intent) {
return new MyBinder();
}AIDL接口
这2种写法有什么区别,我感觉用接口就够了,为什么还搞出一个AIDL使用AIDL:private final AIDLService.Stub mBinder = new AIDLService.Stub() {
@Override
public void invokCallBack() throws RemoteException {
Rect1 rect = new Rect1();
callback.performAction(rect);
}
};public IBinder onBind(Intent t) {
return mBinder;
}
使用接口:private class MyBinder extends Binder implements MyInterface{ @Override
public void invokCallBack(String packagename) {
invokCallBack(packagename);
}}
public IBinder onBind(Intent intent) {
return new MyBinder();
}AIDL接口
但跨进行的话,通过接口就调用不了,需要使用AIDL。
所以使用的时候的时候要考虑有没有跨进程。