android 中序列化对象

  Android中实现序列化有两种方式1.实现Serializable接口,2.实现Parcelable接口。其中一是Java的序列化接口,二是Android自带的序列化接口。
    方式一实现序列化代码很简单,需要序列化的类只要实现接口。但是作为Intent和Bundle的参数的时候,还是Parcelable更方便。而且Serializable方式在序列化的过程中会产生大量临时变量。在页面间传递对象时推荐方式二。

    方式二实现序列化的代码稍显复杂。

    1.需要序列化的类需要实现Parcelable接口,并实现writeToParcel和describeContents方法。


   public int describeContents() {
        return 0;
    }

    public void writeToParcel(Parcel parcel, int i) {
        parcel.writeInt(infoId);
        parcel.writeInt(infotype);
        parcel.writeString(infotitle);
    }


2.创建Parcelable.Creator<Info>(),并实现createFromParcel和newArray方法。   

public static final Parcelable.Creator<Info> CREATOR = new Parcelable.Creator<Info>() {


        @Override
        public Info createFromParcel(Parcel parcel) {
            return new Info(parcel);
        }

        @Override
        public Info[] newArray(int i) {
            return new Info[i];
        }
    };

    public Info(Parcel parcel) {
        infoId = parcel.readInt();
        infotype = parcel.readInt();
        infotitle = parcel.readString();
    }


    方式二不能用于将对象存在于磁盘上的情况。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值