今天查阅资料,简单了解了一下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]; } }; } |