Weiß jemand, wo / wann diese Methode eines Pakets aufgerufen wird?
@Override
public int describeContents() {
return 0;
}
Es muss überschrieben werden. Aber sollte ich darüber nachdenken, etwas Nützliches damit zu machen?
Weiß jemand, wo / wann diese Methode eines Pakets aufgerufen wird?
@Override
public int describeContents() {
return 0;
}
Es muss überschrieben werden. Aber sollte ich darüber nachdenken, etwas Nützliches damit zu machen?
Antworten:
In call ist eine Konstante definiert
Parcelable
,CONTENTS_FILE_DESCRIPTOR
diedescribeContents()
zum Erstellen eines Bitmasken-Rückgabewerts verwendet werden soll.Beschreibung für
CONTENTS_FILE_DESCRIPTOR
in der API-Referenz lautet:Was wirklich bedeutet: Wenn Sie ein
FileDescriptor
Objekt in Parcelable einfügen müssen, sollten / müssen SieCONTENTS_FILE_DESCRIPTOR
als Rückgabewert von descriptionContents () angeben , dh mit " Spezialobjekt " (indescribeContents()
der Beschreibung) meinen sie wirklich :FileDescriptor
.Diese gesamte Parcelable- Funktionalität sieht unvollendet aus (lesen Sie: hat schlechtes Design). Es gibt noch eine andere seltsame Sache in den Dokumenten:
Mehrfachvererbung durch Regeln implementieren, die in lesbarer Form definiert sind? :-)
Es scheint, als hätte ein C ++ - Programmierer entworfen
Parceable
und irgendwann wurde ihm klar: Oh, verdammt, es gibt keine Mehrfachvererbung in Java ... :-)quelle
describeContents()
0 zurückgegeben werden sollte, wenn es "nichts Besonderes an sich hat" . Was eigentlich nichts erklärt. Ihre Erklärung ist so viel klarer!Es gibt nur zwei mögliche Werte, 0 oder CONTENTS_FILE_DESCRIPTOR
Wenn Sie POLO serialisieren, sollte dieser Wert immer 0 sein. Der CONTENTS_FILE_DESCRIPTOR ist für ParcelFileDescriptor reserviert , wodurch ein File Descriptor (FD) im * Unix-System serialisiert werden kann.
quelle