'Ereignis' ist eine beobachtbare. Jeder Gegenstand, der von dem Observablen emittiert wird, wird durch die Kette von Operatoren gehen. Nachdem ein Element die Operatoren durchlaufen hat, wird es an den Abonnenten weitergeleitet, was in 'subscribe' geschieht. Abonnieren bietet zwei Überblendungen. Eine für jede Emission des Streams (Ereignisses) und die zweite für die Feststellung, dass das "Ereignis" - Beobachtbar (Stream) beendet wurde.
Schauen wir uns eine Liste an, die in ein Observable konvertiert wird. Wenn Sie ein Array zu einem beobachtbaren mit konvertieren:
Observable<Integer> integerObservable = Observable.fromArray(1, 2, 3);
Sie erhalten für jeden Wert 1, 2, 3 OnNext im Abonnement genannt. Das Observable wird "onComplete" sein, nachdem 3 zu onNext geschoben wurde. Sehen Sie sich die Implementierung auf gitHub an, um zu sehen, was passiert.
Zurück zu Ihrer Frage: Wie kann ich feststellen, welche Ereignisquelle abgeschlossen ist? Es wäre das beobachtbare "Ereignis", weil Sie es abonnieren.
Post einige Codebeispiel, weil ich die Frage nicht verstehe. onComplete wird auf der gleichen Kette aufgerufen, die Sie die Observable – breakline
@breakline hinzugefügt einige Details erstellt – mtyson
Wenn ich richtig verstehe: Sie können nicht. Allerdings verstehe ich nicht, warum Sie es auch wollen. Sie können das Abonnement selbst speichern und in onCompleted darauf verweisen. Was auch immer du tun willst, du solltest es in die Kette selbst aufnehmen, da nachher dein Beobachtbares im Grunde nicht mehr existiert. – breakline