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 JS控制浮点数输入正则
JS控制浮点数输入正则
2
Docker容器可视化图形工具Portainer
Docker容器可视化图形工具Portainer
3
Shopify插件开发指南
Shopify插件开发指南
4
实现一个Spring Boot Starter入门
实现一个Spring Boot Starter入门
5
微信H5页面 ios12 软键盘收回时页面不回弹,导致光标位置错乱,再次点击输入框区域时无法focus
微信H5页面 ios12 软键盘收回时页面不回弹,导致光标位置错乱,再次点击输入框区域时无法focus
最新评论
一位WordPress评论者
一位WordPress评论者
2月12日
您好,这是一条评论。若需要审核、编辑或删除评论,请访问仪表盘的评论界面。评论者头像来自 Gravatar。