Wie Sie Android Intents Stack-Überlauf serialisiert

Android Intents hat einen bequemer Touri () -Methode, die die API-Dokumentation eine Art und Weise zu zeigen scheinen, ist eine Absicht zu einem URI, und dann später analysiert sie wieder in eine Intent zu serialisiert. Leider ist in dieser Funktionalität zu testen Ich fand, dass es nicht alle Extras nicht serialisiert werden, sondern nur die primitiven Typen (boolean, int, long, float, String). Wenn eine Absicht irgendwelche Parcel oder Array Extras gibt, dann werden diejenigen, verloren gehen.

Wo (wenn überall) ist diese Einschränkung dokumentiert? Gibt es einigen offensichtlichen Grund für dieses Verhalten (ich einige Schwierigkeiten mit Parcelables vorstellen kann)? Und vor allem ist es eine empfohlene Weg Intents zu serialisiert und zu analysieren?

Meine aktuelle Implementierung schreibt einfach Intent Komponenten (Action, Kategorien, Daten uri und Extras) zu einer SharedPreferences. Diese Strategie unterstützt keine Parcelables.

Android Intents hat einen bequemer Touri () -Methode, die die API-Dokumentation eine Art und Weise zu zeigen scheinen, ist eine Absicht zu einem URI, und dann später analysiert sie wieder in eine Intent zu serialisiert.

Wo (wenn überall) ist diese Einschränkung dokumentiert?

TOURi () ist nicht Serialisierung.

Und vor allem ist es eine empfohlene Weg Intents zu serialisiert und zu analysieren?

Nein. Insbesondere Parcel kann nicht serialisiert per definitionem werden.

Meine aktuelle Implementierung schreibt einfach Intent Komponenten (Action, Kategorien, Daten uri und Extras) zu einer SharedPreferences.

Dieser Ansatz ist einfach bizarr.

Verwenden Sie eine Datenbank. Wenn Sie mit einer Datenbank als kleines Kind angegriffen wurden und lebt deshalb in bitterer Angst von Datenbanken, serialisiert mit JSON, XML oder Serializable / Object in eine Datei. Verwenden Sie SharedPreferences für Benutzereinstellungen.

Diese Strategie unterstützt keine Parcelables.

Auch sollte es. Ebenso wenig kann es. Parcel ist nur für einen Objektgraphen in einen Speicherblock zur Verwendung in einer Laufvorrichtung zu konvertieren. Es ist keine langfristige Persistenz-Mechanismus.

In Verbindung stehende Artikel