Android 为什么要考虑在RxJava使用安卓?

Android 为什么要考虑在RxJava使用安卓?,android,rx-java,rx-android,Android,Rx Java,Rx Android,据我所知,这有助于确保: 订阅者总是在主线程上观察 当片段/活动被分离/停止时,观察立即停止,框架相关组件(如ui TextView等)不会更新 但是,为了确保上下文被释放(防止泄漏),我看到的大多数示例通常都说您必须执行.unsubscribe onDestroyView/onDestroy,这实际上会停止订阅,并阻止订阅方接收这些更新 所以我的问题是: 如果我通过.observeOn(AndroidSchedulers.mainThread())手动指示订阅应该发生在主线程上,那么使用And

据我所知,这有助于确保:

  • 订阅者总是在主线程上观察
  • 当片段/活动被分离/停止时,观察立即停止,框架相关组件(如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();
    }
    

    没错。AndroidObservable.bindFragment当前所做的是:

    此帮助程序将安排在主UI线程上观察给定的序列,并确保在计划完成活动时不会将通知转发给该活动

    --部分源代码注释

    因此,使用哪种实现并没有什么区别


    但是,使用AndroidObservable仍然是一个好主意,因为将来可以添加额外的功能。

    自从RxAndroid 1.0发布以来,它就不存在了。我想你可以说它已经被弃用或停止使用了。我认为不再使用它是一个好主意。

    啊,这是关于额外功能的一个好观点ng添加了AndroidObservable路线。