天天看点

Android:进程间通讯AIDL

一、适用场景:client进程必须是Activity,服务端进程必须是Service

二、基于:Activity跟Service绑定

三、问题:在Activity中可以得到的Binder对象,但是无法获得具体类型

四、使用步骤:

(一)Service中创建Binder对象

(二)创建aidl文件(接近interface)

1. 在服务端创建一个interface,方法为MyBinder中的方法

2. 把接口文件扩展名修改为“aidl”,并删除interface之前的public修饰符

3. 将aidl文件拷贝到客户端同样包名中

4. 在服务端将MyBinder继承的Binder修改为aidl文件名.Stub

5. 在客户端的onServiceConected()方法中

  通过IMyBinder binder = IMyBinder.Stub.asInterface(service);

  得到binder

服务端service:

客户端Activity:

继续阅读