一些放在 Intent/bundle 中的 parcelables 对象可能会干扰自己并损害 Intent/Bundle 的读取?
我在我认为有问题的地方提取代码。此代码有效:
public void writeToParcel(Parcel arg0, int arg1) {
arg0.writeParcelable(object1, arg1);
arg0.writeTypedList(arraylist1);
}
public void readFromParcel(Parcel in) {
object1 = in.readParcelable(object1.class.getClassLoader());
arraylist1 = new ArrayList<object3>();
in.readTypedList(arraylist1, object3.CREATOR);
}
但是如果我添加一个其他复杂的 parcelable 对象(使用实习生 parcelable ArrayList):
public void writeToParcel(Parcel arg0, int arg1) {
arg0.writeParcelable(object1, arg1);
arg0.writeParcelable(object2, arg1);
arg0.writeTypedList(arraylist1);
}
public void readFromParcel(Parcel in) {
object1 = in.readParcelable(object1.class.getClassLoader());
object2 = in.readParcelable(object2.class.getClassLoader());
arraylist1 = new ArrayList<object3>();
in.readTypedList(arraylist1, object3.CREATOR);
}
我为 arraylist1 获得了一个包含更多 10000000 个元素的毛球(或其他难以理解的问题)
虽然如果我用arraylist1删除行,它可以工作:
public void writeToParcel(Parcel arg0, int arg1) {
arg0.writeParcelable(this.object1, arg1);
arg0.writeParcelable(this.object2, arg1);
}
public void readFromParcel(Parcel in) {
object1 = in.readParcelable(object1.class.getClassLoader());
object2 = in.readParcelable(object2.class.getClassLoader());
}
我试图制作一个扩展 ArrayList 并实现 Parcelable 的对象,但我还有一些其他问题(如 android.os.BadParcelableException: ClassNotFoundException when unmarshalling:)
如果这些对象相互干扰,那么我必须使用几个捆绑包将这些不同的对象放入同一个意图中?