Parcelable,什么是newArray的?

我正在实现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(); } } 

所以,我的问题是:这是什么方法? 什么时候叫?
除了return new MyParcelable[size];还有什么意义吗return new MyParcelable[size]; 在那个方法?

Solutions Collecting From Web of "Parcelable,什么是newArray的?"

这是一个函数,当您尝试反序列化一个createFromParcel对象的数组,并调用每个对象的createFromParcel被调用。

在那里准备没有所有generics的东西的types的数组。 而已。
return new MyParcelable[size];标准return new MyParcelable[size]; 很好。

这是正常的,你永远不会自己打电话。 但是,通过调用类似Bundle.getParcelableArray()方法,您可以间接地以此方法结束。