分享

Parcelable接口

 风雪夜归人_95 2015-02-10
实现Parcelable接口就是为了进行序列化,为什么需要序列化?
1)永久性保存对象,保存对象的字节序列到本地文件中;
2)通过序列化对象在网络中传递对象
3)通过序列化在进程间传递对象

Android在实现序列化时有2个选择:一个是实现serializable接口(javaSE本身支持的),一个是实现parcelable接口(Android特有的,效率比前者高,可用于Intent数据传递和进程间通信(IPC))。前者实现简单,只需声明一下;实现后者稍微复杂些,但效率更高。

二者选择的原则:
1)使用内存时, 后者性能更高;
2)serializable在序列化的时候会产生大量的临时变量,引起频繁的GC
3)Parcelable不能在要将数据存储在磁盘上的情况使用,因为Parcelable不能在外界变化的情况下很好地保证数据的持续性。因此,此时应该选择前者。

Parcelable的应用场景:
需要在多个部件(如activity、service)之间通过intent传递一些数据,简单类型(如数字、字符串)可直接放入Intent,复杂类型必须实现Parcelable接口。

实现Parcelable的步骤
1)在类名后面添加“implement Parcelable”
2)重写writeToParcel方法,将你的对象序列化为一个parcel对象。
3)重写describeContents方法,内容接口描述,默认返回0就可以
4)实例化静态内部对象creator实现接口Parcelable.Creator

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多