Android Parcelable 序列化

Aarcelable 是Android提供的序列化接口,缺点是使用起来有点麻烦,优点是效率高,也是Android推荐的序列化方式。

序列化代码 :

public class User implements Parcelable {

    private int userId;
    private String userName;
    private boolean isMale;
    private Book book;


    protected User(Parcel in) {
        in.writeInt(userId);
        in.writeString(userName);

        in.writeInt(isMale?1:0);
        in.writeParcelable(book,0);
    }

    public static final Creator<User> CREATOR = new Creator<User>() {
        @Override
        public User createFromParcel(Parcel in) {
            return new User(in);
        }

        @Override
        public User[] newArray(int size) {
            return new User[size];
        }
    };

    @Override
    public int describeContents() {
        return 0;
    }

    @Override
    public void writeToParcel(Parcel dest, int flags) {
        userId = dest.readInt();
        userName = dest.readString();
        isMale = dest.readInt()==1;
        /**
         * 当序列化属性为一个可序列化对象时 反序列化过程需要传递当前线程的上下文类加载器
         */
        book = dest.readParcelable(Thread.currentThread().getContextClassLoader());
    }
}
需要注意的是使用Parcelable序列化 对于 boolean类型和可序列化对象的操作。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值