2011-06-14 11 views
5

Desidero passare oggetti tra attività e servizi su Android. Il modo semplice per farlo è quello di rendere gli oggetti implementati Serializabl eo Parcelable.Serializzazione dell'oggetto per l'invio di Intent su Android

  • Serializable prestazioni relativamente scarse.
  • Parcelable d'altra parte mi richiede di implementare e mantenere la serializzazione me stesso, ricordando sempre di aggiornarlo in futuro.

Stavo pensando di utilizzare il serializzatore Jackson Json per questo compito. È più veloce della serializzazione Java e non richiede la scrittura e la manutenzione del codice di serializzazione.

Cosa ne pensi?

risposta

2

Se le prestazioni sono importanti, è necessario utilizzare Parcelable. JSON sarà relativamente lento perché è meno efficiente di Parcelable, che è stato specificamente implementato in Android per migliorare le prestazioni quando si confezionano i dati per la comunicazione tra processi.

+0

Questo è vero, Android utilizza Active Objects (Binder o FileDescriptors) anziché l'appiattimento vecchio stile – Reno

+0

Grazie per la risposta. Come è Parcelable rispetto a Externalizable? Velocità, memoria? – AlexV

+0

Qualcuno sa quale sorta di differenza relativa ci sarebbe nell'usare parcelable vs JSON solo per salvare oggetti complessi in stato di salvataggio? –

2

alexV

credo che entrambi i metodi abbiano la propria importanza.

  • Parcelable è una buona scelta. Ma usando parcellizzabile dovrai scrivere tu stesso il codice per la serelizzazione. questo metodo non è incoraggiato quando stai avendo grande no. dei membri dati della tua classe, di cui vuoi inviare l'oggetto.
  • D'altra parte serializatin è sicuramente un'operazione ingombrante, ma penso che sia facile da implementare. Dovrai rendere i tuoi strumenti di classe serealizzabili.

Ma c'è ancora un'altra opzione, che è possibile utilizzare. puoi rendere statico il tuo oggetto e accedervi da altre attività. se l'oggetto non è molto voluminoso, allora questa è anche una buona scelta.

Grazie.

Problemi correlati