本文最后更新于:星期四, 六月 18日 2020, 9:01 上午

1.Serializable接口
2.Parcelable接口

##Serializable接口
java中的接口,使用简单,开销大(IO操作多),主要用于将对象序列化到存储设备中或者通过网络传输对象。
标识接口,没有方法,直接实现这个接口就可以序列化用ObjectOutputStream和ObjectInputStream操作。

##Parcelable接口
主要要用于在内存中序列化,效率高,android平台专属,一般用于Intent中传递对象

public class Person implements Parcelable {

    private String name;
    private int age;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
    //提供给Creator内部调用的私有构造方法
    //这里读的顺序要注意和下面写的顺序一样
    private Person(Parcel in) {
        this.name=in.readString();
        this.age=in.readInt();
    }

    public static final Creator<Person> CREATOR = new Creator<Person>() {
        @Override
        public Person createFromParcel(Parcel in) {
            //反序列化,调用内部的私有构造方法传入Parcel。
            return new Person(in);
        }

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

    @Override
    public int describeContents() {
        //几乎所有情况下传入0(极少数情况传入1)
        return 0;
    }

    @Override
    public void writeToParcel(Parcel dest, int flags) {
        //序列化操作,注意和上面读的顺序要一样。
        dest.writeString(name);
        dest.writeInt(age);
    }
}


Android     

本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!

AIDL 上一篇
Bitmap手册 下一篇