android中AIDL进程间通讯(Activity--service)

为了实现进程间通信,尤其是在涉及多进程并发情况下的进程间通信。因为多个进程是不共享一片内存区域,所以不能实现数据共享。

步骤:
1.创建aidl的接口,并且定义两个线程之间通讯的方法。一般用于activity和Service之间的通讯。
在这里插入图片描述
2.如果是创建自定义的类,需要在接口方法中指明数据流通的方向,如果方向不正确的话,是不能获取数据的。
在这里插入图片描述
3.对于自定义的Bean 一定要保证在java包下和aidl包下的结构完全一致。并且为parcelable XXX的形式
在这里插入图片描述

4.点击build ,进行生成aidl的文件,然后创建相应的service.然后生成aidl的IBinder对象
在这里插入图片描述

5.在activity中建立service的连接 并且获取到aidl的对象,根据对象进行操作数据,进行数据的传递
在这里插入图片描述
6.进行数据的交互
在这里插入图片描述
7.在功能清单中进行配置进程
在这里插入图片描述

问题:
1.aidl和java中的bean的包名要保持一致
2.in out inout 方向表示数据传递的方向
3.自定义的bean类生成的parceble对象的时候,需要添加方法
public void readFromParcel(Parcel in) {
name = in.readString();
age = in.readInt();
}
as的代码模板默认没有添加

猜你喜欢

转载自blog.csdn.net/yuezheyue123/article/details/83029018