- CopyOnWriteArrayList这个数组支持并发读写,所以在AIDL进行进程间通讯的时候,如果会用到高频率的读写列表数据的时候,可以使用这个数组来自动进行线程同步的处理。
需要注意的是在用AIDL进行进程间通讯的时候,能够使用的List只有ArrayList,但是CopyOnWriteArrayList却并非继承自ArrayList,这里的原因是AIDL所支持的是抽象的List,因此虽然服务端返回的是CopyOnWriteArrayList,但是在Binder中会按照List的规范去访问数据并形成一个新的ArrayList传递给客户端。和这个类似的还有ConcurrentHashMap也是一样的原理。
说一下AIDL传输支持的数据类型:
基本数据类型(int,long,char,boolean,double等);
String和CharSequence;
List,只支持ArrayList,数组泛型必须能被AIDL支持
Map,只支持HashMap,里面的每个元素都必须能被AIDL支持,包括key和value
Parceable,所有实现了Parceable接口的对象
AIDL,所有的AIDL接口本身也可以在AIDL文件中使用
CopyOnWriteArrayList
最新推荐文章于 2024-01-05 23:55:45 发布