Activity传输数据中如何优雅地进行序列化操作
这期内容当中小编将会给大家带来有关Activity传输数据中如何优雅地进行序列化操作,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
我们经常需要在Activity之间传输数据,传输数据有三种方法
使用Intent的putExtra()方法携带少量数据来传输数据
使用Intent的putExtra()方法携带Bundle传输数据。不要使用这方法传输重要的信息, 因为是明文传输。
使用Intent的putExtra()方法携带序列化的对象传输数据。
而序列化对象也有三种方法
使用Java提供的
Serializable
接口使用Gson库转为为
JSON字符串
使用Android提供的
Parcelable
接口
下面就介绍这三种方法的使用以及性能的对比。
0x01 Serializable接口
model层
要通过Intent传递的实体类要实现Serializable接口
发送数据
接受数据
调用getSerializableExtra()方法来获取序列化对象
0x02 JSON字符串
model层
跟平时定义实体类没有什么区别
发送数据
需要使用Gson或者Fastjson第三方的库,将对象转化为json数据。
我在这里使用Gson做示范。
接受数据
同样也是使用JSON库把json数据转化为对象
0x03 Parcelable
model层
要通过Intent传递的实体类要实现Parcelable接口
并且实现两个方法:
describeContents
:内容接口描述,默认返回0即可;
接口, 用于从Parcel容器中读取数据writeToParcel
:将传递的数据打包到Parcel容器中;
同时,还需要实例化Parcelable.Creator
发送数据
接受数据
调用getParcelableExtra
方法来获取序列化对象
0x04 性能对比
从图片得知,转化速度的效率:
Parcelable > Serializable > JSON字符串
Parcelabled转化效率很明显摔了Serializable和JSON字符串好几条街。
综上所述:
要对对象进行序列化,最好使用Parcelable接口
上述就是小编为大家分享的Activity传输数据中如何优雅地进行序列化操作了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。