当前位置:编程学习 > wap >>

AIDL和接口的区别??他们有什么区别,感觉用起来差不多

一下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 接口 --------------------编程问答-------------------- AIDL可以进程间通信而接口不行 --------------------编程问答-------------------- AIDL 就是提供了远程调用的接口,跨进程通信的轻量级的调用。接口和它没有关系,二者基本没有什么联系。如果真的要说有联系的话,那么可以认为aidl是接口的一种 --------------------编程问答-------------------- activity和service不是运行在同一个进程,不过用上面接口的方式编程,也可以实现activity和service的通讯。 --------------------编程问答-------------------- 我也不是很懂, 坑爹啊 --------------------编程问答-------------------- 如果是在同一个进程,那两者没有差别,都是接口调用。
但跨进行的话,通过接口就调用不了,需要使用AIDL。
所以使用的时候的时候要考虑有没有跨进程。 --------------------编程问答-------------------- aidl只是为了让上层进行进程间通讯的调用,真正的调用是,AIDLService.Stub mBinder 这个binder引用对象, 给你看个图解,这个你应该可以大体明白,client就是你应用程序接口,server就是你需要远程调用的应用程序接口;而中间,就是如何通讯的,很复杂的,我也不是很懂!!
补充:移动开发 ,  Android
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,