W mojej bazie kodów istnieje kilka sytuacji, w których strumień, do którego subskrybuję, wyemituje tylko jeden wynik i jako taki ma sens użycie rx.Single
zamiast rx.Observable
. documentation do Pojedynczego mówi co następuje:Rezygnacja z subskrypcji rx.Single w RxJava
A Single zadzwoni tylko jednej z tych metod, a zadzwoni tylko to raz. Po wywołaniu którejkolwiek metody, Single kończy się, a subskrypcja się kończy.
Z tradycyjnym Observable
przechwycić odniesienie do subskrypcji tak, że mogę wypisać się w odpowiednim czasie i nie powodować wycieki pamięci:
Subscription s = getObservable().subscribe(...);
subscriptions.add(s);
subscriptions.clear();
Moje pytanie brzmi, czy jest to konieczne z jednego lub czy ze względu na fakt, że subskrypcja wygasa natychmiast mogło być pozostawione po prostu jako:
getSingle.subscribe(...);
Bez żadnych negatywnych reperkusji odniesień przetrzymywanych na Into the subskrybent.
ah - aby wyjaśnić, że to nie jest lista, jest to CompositeSubscription – Jahnold