Was ist der Unterschied zwischen subscribe()
und subscribeWith()
in RxJava2 in Android? Beide Funktionen werden verwendet, um einen Observer auf einem Observable zu abonnieren. Was ist der Hauptunterschied zwischen den beiden Funktionen? Wo Sie subscribe verwenden und wo Sie subscribeWith verwenden können. Wenn möglich, geben Sie bitte Codebeispiele an.Was ist der Unterschied zwischen subscribe() und subscribeWith() in RxJava2 in Android?
Antwort
Seit 1.x
Observable.subscribe(Subscriber)
zurückSubscription
, oft Benutzer dieSubscription
zu einemCompositeSubscription
zum Beispiel hinzugefügt:CompositeSubscription composite = new CompositeSubscription(); composite.add(Observable.range(1, 5).subscribe(new TestSubscriber<Integer>()));
Aufgrund der Reaktiv-Streams Spezifikation,
Publisher.subscribe
kehrt Leere und das Muster von selbst nicht mehr funktioniert in 2.0. Um dies zu beheben, wurde das Verfahren E (E-Teilnehmer) jeder reaktiven Basisklasse hinzugefügt, die ihren Eingangsteilnehmer/Beobachter wie sie ist zurückgibt. Mit den beiden Beispielen vor, kann der 2.x-Code jetzt so aussehen, daResourceSubscriber
GeräteDisposable
direkt:CompositeDisposable composite2 = new CompositeDisposable(); composite2.add(Flowable.range(1, 5).subscribeWith(subscriber));
Quelle: What's different in [RxJava] 2.0
Grundsätzlich verstehen, aber was ist mit der plötzlichen unerklärten Erscheinung von 'ResourceSubscriber'? Wollen Sie damit sagen, dass in Ihrem Beispiel der 'Teilnehmer' in' .subscribeWith (Teilnehmer) '' ResourceSubscriber' sein muss? –
- 1. Was ist der Unterschied zwischen "Maybe" und "Optional" von rxjava2?
- 2. Was ist der Unterschied zwischen hasFocus() und isFocused() in Android?
- 3. Was ist der Unterschied zwischen fontFamily und typeFace in Android?
- 4. Was ist der Unterschied zwischen Aktivität und Absicht in Android?
- 5. Was ist der Unterschied zwischen sendStickyBroadcast und sendBroadcast in Android
- 6. Was ist der Unterschied zwischen GCMNetworkManager und JobScheduler in Android
- 7. Was ist der Unterschied zwischen getDecorView() und peekDecorView() in android
- 8. Was ist der Unterschied zwischen Drosselung und Entprellung in Rxswift3.0?
- 9. Was ist der Unterschied zwischen Android noHistory und Android FLAG_ACTIVITY_CLEAR_TASK
- 10. Was ist der Unterschied zwischen @android: und Android:
- 11. Was ist der Unterschied zwischen Android: layout_width und android: width
- 12. Was ist der Unterschied zwischen `==` und `ist`?
- 13. RxSwift - .subscribe vs .subscribeNext Was ist der Unterschied?
- 14. Was ist der Unterschied zwischen Android Native Browser und Chrome
- 15. was ist der Unterschied zwischen windowActionBar und Android: windowActionBar
- 16. Was ist der Unterschied zwischen Google APIs in Android SDK
- 17. Was ist der Unterschied zwischen Service, IntentService in Android?
- 18. Was ist der Unterschied zwischen Android String.compareTo() und sqlite3_stricmp()?
- 19. Was ist der Unterschied zwischen getDir und getFilesDir auf Android?
- 20. Was ist der Unterschied zwischen/* ... */und/** ... */
- 21. Was ist der Unterschied zwischen + = und = +?
- 22. Was ist der Unterschied zwischen $ (()) und Ausdruck?
- 23. Was ist der Unterschied zwischen "Alle" und "Jeder" in Großbuchstaben?
- 24. Was ist der Unterschied zwischen ObservableScribe() und ObservableScribe ({})?
- 25. Was ist der Unterschied zwischen AOsp und Android PDK?
- 26. Was ist der Unterschied zwischen:.! und: r !?
- 27. Was ist der Unterschied zwischen {}()) und {})()
- 28. Was ist der Unterschied zwischen Verilog! und ~?
- 29. Android: Was ist der Unterschied zwischen View.inflate und getLayoutInflater().
- 30. Was ist der Unterschied zwischen Toast und Notification auf Android?
Haben Sie lesen https://github.com/ReactiveX/ RxJava/wiki/Was ist-anders-in-2.0? –
Ja, ich habe die Dokumentation gelesen und ich verstehe, dass sie das Konzept von Einweg eingeführt haben. Ich möchte einfach eine einfachere und leichter verständliche Erklärung. –
Es heißt wörtlich: _ "Aufgrund der Reactive-Streams-Spezifikation gibt 'Publisher script' void zurück und das Muster selbst funktioniert nicht mehr in 2.0. Um dies zu beheben, wurde die Methode 'E subscribeWith (E subscriber)' hinzugefügt zu jeder reaktiven Basisklasse, die ihren eingegebenen Teilnehmer/Beobachter zurückgibt, wie es ist. "_ Das genau beantwortet Ihre Frage. Welchen Teil davon verstehst du nicht? –