Android使用Parcelable序列化复杂数据结构

Android序列化方案Parcelable,相比Serializable更快,效率更高,占用内存更少。

Boolean类型

//write
dest.writeByte((byte) (isDefault ? 1: 0));

//read
isDefault = source.readByte() != 0;

List类型

//write
dest.writeList(list);

//read
list = source.readArrayList(String.class.getClassLoader());
list = source.readArrayList(Integer.class.getClassLoader());
list = source.readArrayList(MyEntity.class.getClassLoader());

Map类型

//write
dest.writeMap(map);

//read
map = source.readHashMap(HashMap.class.getClassLoader());

Array数组

//write
if (array != null) {
    dest.writeInt(array.length);
} else {
    dest.writeInt(0);
}
dest.writeStringArray(array);

//read
int length = source.readInt();
array = new String[length];
source.readStringArray(array);

实体类

//如果实体类实现Serializable接口
//write
dest.writeSerializable(entity);
//read
source.readSerializable();

//如果实体类实现Parcelable接口
//write
dest.writeParcelable(entity, flags);
//read
source.readParcelable(MyEntity.class.getClassLoader());
上一篇 Android ObjectAnimator记录
下一篇 Android ANR超时时间的定义
目录
文章列表
1 TestNG异常测试
TestNG异常测试
2
支付宝APP支付同步返回业务数据验签及处理采坑
支付宝APP支付同步返回业务数据验签及处理采坑
3
微信小程序navigateBack更新上一页数据
微信小程序navigateBack更新上一页数据
4
Android 拨打电话(跳转拨打及直接拨通)
Android 拨打电话(跳转拨打及直接拨通)
5
React Native学习之开源侧边栏组件react-native-side-menu
React Native学习之开源侧边栏组件react-native-side-menu
最新评论
一位WordPress评论者
一位WordPress评论者
2月12日
您好,这是一条评论。若需要审核、编辑或删除评论,请访问仪表盘的评论界面。评论者头像来自 Gravatar。