बल्कि सरल परिदृश्य वास्तव में, लेकिन मैं तो यहाँ गूगल पर संबंधित कुछ भी नहीं मिला है:एंड्रॉयड parcelable एक और parcelable परिपत्र निर्भरता को संदर्भित
class ContainerClass implements Parcelable {
List<ItemClass> _items;
(...)
public void writeToParcel(Parcel p, int args) {
p.writeList(_items);
(...)
}
}
class ItemClass implements Parcelable {
ContainerClass _containerRef;
(...)
public void writeToParcel(Parcel p, int args) {
p.writeParcelable(_containerRef);
(...)
}
}
यह अनिवार्य रूप से पाश होगा और ढेर अतिप्रवाह।
मेरा प्रश्न: मुझे ऐसी परिस्थिति से कैसे निपटना चाहिए जहां मुझे उपरोक्त प्रकार की वस्तु को एक नई गतिविधि के माध्यम से पारित करना है।
(कॉमन्सवेयर के लिए) पार्सल करने योग्य कार्यान्वयन वास्तव में जांच नहीं करता है, और परिपत्र निर्भरताओं से बचता है। ऊपर नामों से बदल classnames साथ स्टैकट्रेस:
08-12 10:17:45.233 5590-5590/com.package E/AndroidRuntime: FATAL EXCEPTION: main
java.lang.StackOverflowError
at com.package.ContainerClass.writeToParcel(ContainerClass.java:139)
at android.os.Parcel.writeParcelable(Parcel.java:1254)
at com.package.ItemClass.writeToParcel(ItemClass.java:182)
at android.os.Parcel.writeParcelable(Parcel.java:1254)
at android.os.Parcel.writeValue(Parcel.java:1173)
at android.os.Parcel.writeList(Parcel.java:622)
at com.package.ContainerClass.writeToParcel(ContainerClass.java:144)
at android.os.Parcel.writeParcelable(Parcel.java:1254)
at com.package.ItemClass.writeToParcel(ItemClass.java:182)
at android.os.Parcel.writeParcelable(Parcel.java:1254)
at android.os.Parcel.writeValue(Parcel.java:1173)
at android.os.Parcel.writeList(Parcel.java:622)
मैंने नंबर 2 को कार्यान्वित किया। – Skod