Je pense que vous pouvez utiliser RXJava lors du développement d'applications Android. A cette époque, j'étais accro au planificateur de subscribeOn et observeOn, alors prenez note
subscribeOn
subscribeOn spécifie le thread à utiliser pour l'ensemble du flux Java RX. Par exemple, si vous avez le code suivant (Extrait de https://medium.com/upday-devs/rxjava-subscribeon-vs-observeon-9af518ded53a)
just("Some String") // Computation
.map(str -> str.length()) // Computation
.map(length -> 2 * length) // Computation
.subscribeOn(Schedulers.computation()) // Computation
.subscribe(number -> Log.d("", "Number " + number));// Computation
Il s'agit d'un thread de calcul qui gère l'ensemble du traitement des données provenant de l'observable.
observeOn
D'autre part, observez
just("Some String") // UI
.map(str -> str.length()) // UI
.map(length -> 2 * length) // UI
.observeOn(Schedulers.computation()) // Computation
.subscribe(number -> Log.d("", "Number " + number));// Computation
Le processus après l'aval où observeOn est placé sera le thread spécifié. Dans ce code, s'il n'y a pas de spécification, il est traité par le thread d'interface utilisateur, mais le traitement après l'avoir spécifié avec observeOn est traité par le thread de calcul.
Prenons un cas où un traitement fastidieux tel que l'accès à l'API est effectué de manière asynchrone, et un traitement qui avertit l'abonné lorsque les données sont prêtes est effectué à l'aide de RXJava. À ce stade, il est envisageable de spécifier un thread qui effectue le traitement de manière asynchrone en tant que thread de travail. Par conséquent, spécifiez le thread qui exécute tout le traitement avec subscribeOn.
Cependant, si vous exécutez subscribe et opérez la vue dans ce dernier, vous ne pouvez pas le faire dans le thread de travail tel quel. Par conséquent, lorsque vous effectuez une opération d'affichage, vous pouvez effectuer une opération d'affichage en observant Activé et en la traitant dans le thread d'interface utilisateur.
http://techlife.cookpad.com/entry/2015/04/13/170000
https://medium.com/upday-devs/rxjava-subscribeon-vs-observeon-9af518ded53a
Recommended Posts