Как я понимаю AndroidObservable помогает гарантировать, что:Почему следует рассмотреть вопрос об использовании AndroidObservables в RxJava
- Абонент всегда наблюдает в основном потоке
- когда фрагмент/активность отсоединяется/остановлен, затем останавливается наблюдения немедленно, а также связанные с каркасом компоненты (например, ui textviews и т. д.) не обновляются.
Однако для того, чтобы гарантировать, что контекст освобождается (предотвращение утечки), большинство примеров, я вижу, как правило, говорят, что вы должны сделать в любом случае .unsubscribe onDestroyView/OnDestroy, который по существу останавливает подписку, и предотвращает абонент получает все эти обновления.
Так что мой вопрос:
Есть ли другие преимущества при использовании AndroidObservables, если я вручную указать, что подписка должна происходить в основном потоке, путем .observeOn (AndroidSchedulers.mainThread()
?есть ли разница в приведенных ниже двух подходов
_subscription1 = AndroidObservable.bindFragment(MyFragment.this, myCustomAwesomeObservable()) //
.subscribeOn(Schedulers.io()) //
.subscribe(...);
_subscription2 = myCustomAwesomeObservable()
.subscribeOn(Schedulers.io()) //
.observeOn(AndroidSchedulers.mainThread()) //
.subscribe(...);
@Override
public void onDestroyView() {
_subscription1.unsubscribe();
_subscription2.unsubscribe();
super.onDestroyView();
}
ах, это хорошая мысль о добавлении дополнительной функциональности с помощью AndroidObservable route. –