我正在实现Parcelable以便在Intent中传输一些简单的数据。
然而,Parcelable接口中有一个方法我完全不理解:newArray()
。
它没有任何相关文档, 且在我对对象进行封装/解封时,我的代码中甚至没有调用它。
示例Parcelable实现:
public class MyParcelable implements Parcelable {
private int mData;
public int describeContents() {
return 0;
}
public void writeToParcel(Parcel out, int flags) {
out.writeInt(mData);
}
public static final Parcelable.Creator<MyParcelable> CREATOR
= new Parcelable.Creator<MyParcelable>() {
public MyParcelable createFromParcel(Parcel in) {
return new MyParcelable(in);
}
public MyParcelable[] newArray(int size) {
return new MyParcelable[size];
}
};
private MyParcelable(Parcel in) {
mData = in.readInt();
}
}
所以,我的问题是:这个方法是用来做什么的?什么时候会被调用?
除了在这个方法中返回 new MyParcelable [size];
之外,还有什么别的意义吗?