54 votes

Android - SharedPreferences avec un objet sérialisable

Je sais que les préférences partagées ont putString() , putFloat() , putLong() , putInt() y putBoolean() . Mais j'ai besoin de stocker un objet de type Serializable en SharedPreferences . Comment y parvenir ?

0voto

Vlad Sonkin Points 61

2020 : Si vous souhaitez sauvegarder des objets, il est préférable d'utiliser Proto DataStore au lieu de SharedPreferences.

Il apporte de grands avantages par rapport aux "anciennes" préférences partagées, à savoir

  • API asynchrone pour le stockage et la lecture des données (Flow)
  • Sécurité de type dès le départ (Protocol Buffers)
  • Appel sûr depuis le thread de l'interface utilisateur (Dispatchers.IO en dessous)

Et bien d'autres avantages tels que l'API transactionnelle, qui garantit la cohérence.

Jetez un coup d'œil à mon article de blog pour voir comment mettre en œuvre facilement le DataStore de Proto

0voto

straya Points 1605

Si votre objet est complexe et comporte des objets imbriqués et que vous devez un jour supprimer un objet imbriqué, il s'agit d'un mauvais mécanisme, car vous devrez mettre en œuvre votre propre stratégie de migration (à moins qu'il ne soit préférable de jeter toutes les données).

S'il s'agit d'une grande quantité de données, ce mécanisme ne prend pas en charge les transactions. Alors, faut-il écrire son propre système ? Ou utiliser un mécanisme de stockage plus approprié ? J'encourage fortement l'utilisation d'un mécanisme de stockage plus approprié tel que le système de fichiers ou la base de données SQLite.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X