Ich denke, Sie können RXJava bei der Entwicklung von Android-Apps verwenden. Zu dieser Zeit war ich süchtig nach dem Scheduler von SubscribeOn und ObservOn. Machen Sie sich also eine Notiz
subscribeOn
subscribeOn gibt den Thread an, der für den gesamten RX-Java-Stream verwendet werden soll. Zum Beispiel, wenn Sie den folgenden Code haben (Auszug aus 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
Dies ist ein Berechnungsthread, der die gesamte Verarbeitung der vom Observable fließenden Daten übernimmt.
observeOn
Beobachten Sie andererseits On
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
Der Prozess nach dem Downstream, in dem ObservOn platziert ist, ist der angegebene Thread. Wenn in diesem Code keine Spezifikation vorhanden ist, wird sie vom UI-Thread verarbeitet, aber die Verarbeitung nach Angabe mit ObservOn wird vom Berechnungsthread verarbeitet.
Stellen Sie sich einen Fall vor, in dem eine zeitaufwändige Verarbeitung wie der API-Zugriff asynchron ausgeführt wird und die Verarbeitung, die den Abonnenten benachrichtigt, wenn die Daten bereit sind, mit RX Java ausgeführt wird. Zu diesem Zeitpunkt ist es denkbar, einen Thread anzugeben, der die Verarbeitung asynchron als Arbeitsthread ausführt. Geben Sie daher den Thread an, der die gesamte Verarbeitung mit subscribeOn ausführt.
Wenn Sie jedoch die Abonnement- und Bedienungsansicht darin ausführen, können Sie dies im Arbeitsthread nicht so tun, wie es ist. Daher können Sie die Ansichtsoperation ausführen, indem Sie Ein beobachten und im UI-Thread verarbeiten, wenn Sie die Ansichtsoperation ausführen.
http://techlife.cookpad.com/entry/2015/04/13/170000
https://medium.com/upday-devs/rxjava-subscribeon-vs-observeon-9af518ded53a
Recommended Posts