jak rozumiem AndroidObservable pomaga zapewnić, że:Dlaczego należy rozważyć użycie AndroidObservables w RxJava
- Abonent zawsze zauważa się na głównym wątku
- gdy fragment/działalności jest odłączony/zatrzymał się, a następnie zatrzymuje obserwacyjnych natychmiast, a komponenty związane z ramami (takie jak ui textviews itp.) nie są aktualizowane.
Jednakże, w celu zapewnienia, że kontekst jest zwolniony (wyciek zapobieganie), większość przykładów widzę zazwyczaj mówią, że trzeba i tak zrobić .unsubscribe onDestroyView/onDestroy, która zasadniczo zatrzymuje subskrypcję i zapobiega abonenta od otrzymania tych aktualizacji.
Więc moje pytanie brzmi:
Czy istnieje jakakolwiek inna zaletą korzystania AndroidObservables, jeśli mogę ręcznie wskazać, że abonament powinno się zdarzyć w głównym wątku, w drodze .observeOn (AndroidSchedulers.mainThread
()?Czy jest jakaś różnica w poniższych dwóch podejść
_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();
}
ah to dobry punkt na dodanie dodatkowej funkcjonalności do trasy AndroidObservable. –