2017-12-05 4 views
1

observeOn: Diese Methode ändert einfach den Faden aller Betreiber weiter stromabwärts (https://medium.com/upday-devs/rxjava-subscribeon-vs-observeon-9af518ded53a)Rxjava observeOn und subscribeOn in Retrofit

Wenn API aufrufen, möchte ich die Kommunikation mit einem Server auf IO-Thread ausgeführt und möchte mit dem Ergebnis auf mainThread umgehen.

Ich sehe den folgenden Code in vielen Tutorials und zweifellos ist es richtig. aber mein Verständnis ist Gegenteil, also würde ich gerne wissen, was ich falsch verstehe.

requestInterface.callApi() 
    .observeOn(AndroidSchedulers.mainThread()) 
    .subscribeOn(Schedulers.io()) 
    .subscribe()) 

observeOn (AndroidSchedulers.mainThread())

: observeOn ändert den Faden aller Betreiber weiter stromabwärts, jedoch in dem Beispiel die tatsächliche rufenden API-Funktion ist, als obere observeOn?

.subscribeOn (Schedulers.io())

: Wirr Teil, muss es auf dem Hauptthread abonniert werden, sondern auf IO-Thread abonnieren?

Bitte beraten Sie mich Was ich falsch verstehe?

Antwort

1

Basic, haben wir
Observable.subscribe(Observer);

=>
Observer beobachten Observable
Observable abonnieren Observer
=>
observeOn wird Faden Observer ändern. subscribeOn wird Thread von Observable ändern.

In Ihrem Beispiel (requestInterface.callApi() < =>Observable und ...subscribe(Observer) < =>Observer).
Ich kann die Definition von observeOn in Ihrer Frage nicht erklären, aber hier ist mein Verständnis. Hoffe es hilft dir

Verwandte Themen