Come capisco AndroidObservable aiuta a garantire che:Perché si dovrebbe considerare l'utilizzo AndroidObservables in RxJava
- un abbonato osserva sempre sul filo principale
- quando un frammento/attività è staccato/fermo, prima di arrestarsi osservazione immediatamente e le componenti relative al framework (come le visualizzazioni di testo di ui ecc.) non vengono aggiornate.
Tuttavia, al fine di garantire che il contesto viene rilasciato (evitando perdite), la maggior parte degli esempi che vedo di solito dire che si deve fare comunque un .unsubscribe onDestroyView/OnDestroy, che arresta essenzialmente la sottoscrizione, e impedisce la abbonato da ricevere comunque questi aggiornamenti.
Quindi la mia domanda è:
C'è un altro vantaggio di utilizzare AndroidObservables, se indico manualmente che la sottoscrizione dovrebbe accadere sul thread principale, a titolo di .observeOn (AndroidSchedulers.mainThread()
?c'è qualche differenza nelle sottostanti due approcci
_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 questo è un buon punto su funzionalità aggiuntive da aggiungere con la rotta AndroidObservable. –