Android archivia un oggetto parchelabile in sqlite
-
29-10-2019 - |
Domanda
Devo archiviare un contenuto di oggetti in SQLite. Mi chiedevo quale fosse il modo migliore per farlo con una serializzazione dell'oggetto o con parchelabile.
È possibile archiviarlo come parlabile? Come posso farlo?
Soluzione
Sei invitato a convertire il tuo oggetto in una sorta di struttura di dati persistente (XML, JSON, Serializable
) e riempilo in qualche colonna di database. Tieni presente che dovrai comunque affrontare i problemi di compatibilità (ad esempio, la versione 2 della tua app cambia una classe, che ora deve affrontare le strutture della versione 1 e della versione 2). Tieni presente inoltre che, percorrendo questa strada, perdi molte capacità di database (ad esempio, interrogando su qualcosa nell'oggetto).
Sei anche il benvenuto a sperimentare database di oggetti o CouchDB o memorizzare la struttura dei dati persistenti in un file, se SQLite non è un requisito.
Ciò che sicuramente non funzionerà in modo affidabile è versare il Parcelable
in un Parcel
e prova a conservare il Parcel
. UN Parcel
è pensato solo per l'uso IPC e non è progettato per essere persistito. Questo è uno dei motivi per cui Parcelable
è più veloce di Serializable
.
Altri suggerimenti
Se è necessario persistere dati, usa Serializable
. Parcelable
è pensato per l'uso IPC. È un formato binario e non raccomandato per la persistenza.