Eher einfaches Szenario, aber ich konnte nichts über Google finden, also hier:
%Vor%Dies wird den Stapel unweigerlich durchlaufen und überlaufen.
Meine Frage: Wie soll ich mit einer Situation umgehen, in der ich ein Objekt der oben genannten Typen zu einer neuen Aktivität durchlassen muss?
(für CommonsWare) Die parzellierbare Implementierung scheint tatsächlich nicht nach zirkulären Abhängigkeiten zu suchen und sie zu vermeiden. Stacktrace mit Klassennamen, die durch obige Namen ersetzt wurden:
%Vor%Ich habe noch etwas darüber nachgedacht und zwei Workarounds gefunden, die nützlich sind, wenn sich jemand anderes im selben Boot befindet:
1) (Inspiriert von CommonsWare) Setzen Sie eine Flagge auf jeden Teil der Kette, um die Richtung anzuzeigen Nach oben ist die Hierarchie verlustreich in dem Sinne, dass alle Elemente der ContainerClass nicht wiederhergestellt werden können.
%Vor%2) Hackish-Problemumgehung unter Verwendung einer statischen Hash-Tabelle, die jedem Objekt gewährt wird, kann durch seine parzellierbaren Attribute eindeutig identifiziert werden. (In meinem Fall habe ich den Primärschlüssel in meiner Datenbank in den Objekten).
%Vor%Dies wird den Stapel unweigerlich durchlaufen und überlaufen.
AFAIK, der Parzellierungsprozess behandelt keine kreisförmigen Objektdiagramme . Ich habe gerade ein Problem behoben, um dies besser zu dokumentieren .
Eine Umgehungslösung besteht darin, p.writeParcelable( _containerRef );
nicht zu verwenden. Stattdessen in ContainerClass
, in Ihrem ContainerClass(Parcel in)
-Konstruktor (oder wie auch immer Ihr CREATOR
es behandelt), nach dem Einlesen Ihrer _items
-Liste, iterieren Sie über diese Liste und teilen Sie jedem Kind seinen Elternteil mit.
Tags und Links android loops stack-overflow chain parcelable