据我了解AndroidObservable有助于确保:
但是,为了确保上下文被释放(防止泄漏),我看到的大多数示例通常都说你必须做.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();
}
答案 0 :(得分:6)
你是对的。 AndroidObservable.bindFragment目前所做的是:
此帮助程序将安排在主UI线程上观察给定序列,并确保在计划完成时不会将任何通知转发给活动。
- 部分源代码评论
因此,它并没有真正改变您使用的实现方式。
但是,使用AndroidObservable仍然是一个好主意,因为将来可能会添加额外的功能。
答案 1 :(得分:1)
自从RxAndroid 1.0发布以来,它已经不存在了。我想你可以说它被弃用或停产了。我不认为再使用它是个好主意。