Android中的Parcelable序列化对象

时间:2022-11-16 12:11:47

今天查阅资料,简单了解了一下Parcelable接口,它是android提供的序列化对象的接口,比java中的
Serializable高效些。通过这个接口序列化对象主要有两步:
1.实现public void writeToParcel(Parcel dest, int flags) {}方法;
2.实例化CREATOR

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public static final Parcelable.Creator<ParcelableImpl> CREATOR = new Parcelable.Creator<ParcelableImpl>() {
 
    @Override
    public ParcelableImpl createFromParcel(Parcel source) {
 
        return new ParcelableImpl(source);
    }
 
    @Override
    public ParcelableImpl[] newArray(int size) {
 
        return new ParcelableImpl[size];
    }
};

详细说明参照如下代码:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import android.os.Parcel;
import android.os.Parcelable;
 
public class ParcelableImpl implements Parcelable {
 
    private int num;
 
    ParcelableImpl(Parcel in) {
        num = in.readInt();
    }
 
    @Override
    public int describeContents() {
        return 0;
    }
 
    //将ParcelableImpl对象序列化为一个Parcel对象
    @Override
    public void writeToParcel(Parcel dest, int flags) {
        dest.writeInt(num);
    }
 
    // CREATOR 必须大写,而且必须是“CREATOR”
    public static final Parcelable.Creator<ParcelableImpl> CREATOR = new Parcelable.Creator<ParcelableImpl>() {
 
        //将Parcel对象发序列化为ParcelableImpl
        @Override
        public ParcelableImpl createFromParcel(Parcel source) {
            return new ParcelableImpl(source);
        }
 
        @Override
        public ParcelableImpl[] newArray(int size) {
            return new ParcelableImpl[size];
        }
    };
}