web-dev-qa-db-fra.com

SingleLiveEvent fait-il réellement partie de la bibliothèque de composants d'architecture Android Android?

J'utilise la classe SingleLiveData qui peut être trouvée ici . Mes questions sont:

  1. SingleLiveData fait-il partie des composants de l'architecture Android?

  2. Est-ce une bonne idée de l'utiliser?

9
Archie G. Quiñones

En regardant données en direct et son héritage parent/enfants il n'y a rien de tel que SingleLiveData. Lien de lecture fourni par @Raghu, je trouve la déclaration:

La classe SingleLiveEvent a été créée pour un exemple en tant que solution fonctionnant pour ce scénario particulier. Il s'agit d'un LiveData qui n'enverra une mise à jour qu'une seule fois.

Alors pour répondre à vos questions:

Est-ce que SingleLiveData fait réellement partie des composants d'architecture Android?

Non, ça ne l'est pas!

Est-ce une bonne idée de l'utiliser?

Cela dépend de nombreux facteurs. Comme je ne l'ai pas utilisé, je vais donner une idée générale. L'utilisation des classes que vous trouvez dans l'application de démonstration ou d'une autre manière peut ne pas être garantie d'être mise à jour ou corrigée. Donc, si vous comprenez si bien la classe que vous pouvez corriger tout bug que vous pourriez trouver, et si cela correspond à vos besoins, utilisez-le.

Mais en général, j'éviterais cela si je peux trouver quelque chose qui est bien entretenu et fait le même travail.

Étant donné qu'en parcourant l'article, j'ai l'impression qu'il essaie de créer une sorte de modèle d'observation, je vous suggère de consulter rxjava

7
Stefano Mtangoo

SingleLiveEvent fait-il réellement partie de la bibliothèque de composants d'architecture Android Android?

Non, et ce ne sera pas: https://issuetracker.google.com/issues/12241311 . Fondamentalement, la réponse officielle est "Oui, les données de vie ordinaires n'étaient pas suffisantes, nous l'avons donc introduit dans nos exemples, mais c'est trop hacky pour être dans la bibliothèque" .

12
Ghedeon