web-dev-qa-db-fra.com

Comment gérer la rotation avec Retrofit et RxJava/RxAndroid dans Activity?

J'ai lu ici que nous pouvons utiliser un cache global pour gérer la rotation.

Vous pouvez éviter cela en utilisant le cache ou en relisant les opérateurs Observable, tout en veillant à ce que l'observable survive au cycle de vie de l'activité (par exemple, en le stockant dans un cache global, dans un fragment, etc.).

Mais comment y parvenir? Quelqu'un peut me donner un exemple de la façon de le faire? Ou peut-être connaissez-vous une meilleure approche pour gérer les changements de configuration?

MODIFIER:

Pour l’instant, j’ai trouvé plusieurs solutions, mais j’ai fini par utiliser la réalisation RxBus. Bel exemple d’utilisation de RxBus, vous pouvez trouver ici .

29

J'ai créé une application de démonstration ( https://github.com/pmellaaho/RxApp ) afin de faire des expériences sur la manière de gérer les types de situations dans l'application Android. En bref, j'utilise un modèle singleton à partir d'activité pour obtenir la réponse du réseau. Cela permet de mettre en cache les réponses, d'accéder aux données de plusieurs composants de l'interface utilisateur, de s'abonner aux demandes en attente et de fournir des données fictives pour les tests automatisés de l'interface utilisateur. 

5
pmellaaho

J'ai récemment utilisé Loader associé à ConnectableObservable pour gérer de meilleures rotations au cours du flux RxJava2. J'ai même créé un Medium Post expliquant en détail mon approche.

Fondamentalement, vous devez placer l'observable (ConnectableObservable) dans un Loader avec un Transformer et le réabonner ultérieurement lorsque l'activité/le fragment reprend après la destruction.

0
Phil