2012-01-17 13 views
10

Ho bisogno di memorizzare un contenuto oggetto in Sqlite. Mi chiedevo quale fosse il modo migliore per farlo con una serializzazione dell'oggetto o con Parcelable.Android Archivia un oggetto Parcelable in SQLite

È possibile memorizzarlo come Parcelable? Come posso farlo?

+0

è davvero necessario mantenere i dati in sqlite non sarebbe meglio tenere in una cartella? – ademar111190

risposta

32

È possibile convertire il proprio oggetto in una sorta di struttura di dati persistibile (XML, JSON, Serializable) e inserirlo in alcune colonne del database. Ricorda che dovrai ancora risolvere i problemi di compatibilità (ad esempio, la versione 2 della tua app modifica una classe, che ora deve gestire sia le strutture della versione 1 che della versione 2). Inoltre, tieni presente che, seguendo questa strada, perdi molte funzionalità del database (ad esempio, esegui una query su qualcosa nell'oggetto).

Si consiglia inoltre di sperimentare con database di oggetti o CouchDb o di archiviare la struttura di dati persistibili in un file, se SQLite non è un requisito.

Quello che certamente non funzionerà in modo affidabile è quello di versare il Parcelable in un Parcel e provare a conservare la Parcel. Un Parcel è pensato solo per uso IPC e non è progettato per essere persistente. Questo è uno dei motivi per cui Parcelable è più veloce di Serializable.

+0

Come sempre, la risposta perfetta :) Ad ogni modo non so quanto Serializable sia scalabile per le retrocompatibilità. Penso che proverò a memorizzare i dati in JSON con un qualche tipo di compressione :) – StErMi

+1

@StErMi: Sì, se dovessi seguire questo percorso personalmente userò JSON, o forse XML, a meno che alcuni dati non possano essere trasformato in testo È molto più facile eseguire il debug quando puoi effettivamente leggere i dati, piuttosto che essere un blob criptico. – CommonsWare

+0

hai perfettamente ragione :) ci provo :) – StErMi

3

Se è necessario mantenere i dati, utilizzare Serializable. Parcelable è pensato per l'uso IPC. È un formato binario e non raccomandato per la persistenza.

Problemi correlati