Два наблюдателя по умолчанию (ConsumerSingleObserver
и BiConsumerSingleObserver
), которые возвращаются Single
, когда вы subscribe
распоряжаетесь собой onError
и onSuccess
. Если вы передадите свой собственный SingleObserver
, вам нужно решить, когда его утилизировать.
Сингл вызовет только один из этих методов и вызовет его только один раз. При вызове любого из методов Single завершается, и подписка на него заканчивается.
(http://reactivex.io/documentation/single.html)
В некоторых случаях вы можете захотеть утилизировать SingleObserver
до того, как он утилизирует себя, и в этом случае вам просто нужно вызвать dispose
на Disposable
, возвращаемом subscribe
. Когда и где вы звоните, это действительно зависит от вашей конкретной ситуации.
Если ваш Single
не завершится до того, как ваш жизненно-циклический объект будет уничтожен (например, HTTP-вызовы), вы должны расположить наблюдателя в обратном вызове уничтожения жизненно-циклического объекта.