Intent 或持久化存储处理复杂对象

在进程或页面通信时需要使用Intent传递数据; 在对象持久化时需要存储数据. 对于复杂的对象, 进行序列化才可传递或存储, 可以使用Java的Serializable方式或Android的Parcelable方式. 本文介绍SerializableParcelable的使用方式, 含有Demo.

欢迎Follow我的GitHub: https://github.com/SpikeKing

本文源码的GitHub下载地址

intent-logo (1)


序列化对象, 使用ObjectOutputStream存储已经序列化的对象数据, 通过writeObject写入对象.

缓存文件位置: new File(context.getCacheDir(), "cache.txt").

反序列对象, 使用ObjectInputStream反序列化对象, 通过readObject读取对象的持久化信息.


Parcelable

Android推荐的序列化对象方式. 实现Parcelable接口, writeToParcel写入对象的变量, UserParcelable提供解析对象方式. CREATOR是创建序列化对象的匿名类, 必须实现, 包含创建单个对象与数组的方式. describeContents只有在含有文件描述符是返回1, 默认都是返回0, 不需要修改.

使用Intent传递对象数据, 编号0, 姓名Spike, 性别女, 喜欢书籍三国演义.

解析广播Intent的数据, 使用getParcelableExtra方法即可.


效果

动画

Serializable序列化需要大量的IO操作, Parcelable序列化虽然使用复杂, 但是效率很高, 是Android开发的首选. Parcelable主要应用于内存序列化, 如Intent广播等.

OK, that’s all! Enjoy it!

打赏支持我写出更多好文章,谢谢!

打赏作者

打赏支持我写出更多好文章,谢谢!

1 2 收藏 1 评论

关于作者:Spike

硕士毕业, 任职于春雨移动健康, 从事移动端架构工作. 做了六年技术研发, 还会一直坚持下去. 分享一些自己的开发经验. 个人主页 · 我的文章 · 6 ·    

可能感兴趣的话题



直接登录
最新评论
跳到底部
返回顶部