【发布时间】:2014-10-26 10:18:57
【问题描述】:
据我了解,AndroidObservable 有助于确保:
- 订阅者总是在主线程上观察
- 当分离/停止片段/活动时,观察立即停止,并且框架相关组件(如 ui textview 等)不会更新。
但是,为了确保释放上下文(防止泄漏),我看到的大多数示例通常都说您无论如何都必须执行 .unsubscribe onDestroyView/onDestroy,这实际上会停止订阅,并阻止订阅者接收无论如何,这些更新。
所以我的问题是:
如果我通过 .observeOn(AndroidSchedulers.mainThread() 手动指示订阅应该发生在主线程上,那么使用 AndroidObservables 还有其他好处吗?
以下两种方法有什么区别吗?
_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();
}
【问题讨论】:
标签: android rx-java rx-android