代码之家  ›  专栏  ›  技术社区  ›  Robert Lewis

对.isdisposed()的结果的回答冲突

  •  0
  • Robert Lewis  · 技术社区  · 7 年前

    我肯定我在某个地方读到过 .isDisposed() 不保证返回 true 除非 .dispose() 已显式调用。但是 this answer 说它 总是 收益率 之后 .onComplete() 已经被呼叫,而 this one .doOnDispose() 从未 在完成事件后调用。

    我想创建一个 Action 如果 Observable 已释放,但如果它正常完成,则不会释放。有什么办法保证吗?关于语义的官方答案是什么 ISAd处置() ?它可能会或可能不会回来的可能性 完成后不是很满意。

    更新:我正在尝试转换 Single 进入一个项目 可观察的 . 一旦它发出它的项目,它当然会完成。但我还是想要它 处理() 触发单独操作的方法:

            mObservable = mSingle
                    .toObservable()
                    .doOnDispose( () -> {
                        do stuff} );
    

    我转换的全部原因 单一的 可观察的 是有能力处理 doOnDispose() 行动。我说的对吗? 单一的 在发射物品后被撕毁,因此 doOnDispose 方法不再可用?(如果我错了,我可以跳过转换为 可观察的 )

    1 回复  |  直到 7 年前
        1
  •  0
  •   Robert Lewis    7 年前

    @阿卡诺克指出了一些我从未完全理解的事情:当你在 subscribe() 呼叫,引擎盖下A LambdaSubscriber 创建并报告 isDisposed() true 关于终止。

    如果你不想要这个,你必须写你自己的 Observer 具有所需的行为。afaik没有办法换掉默认值 lambda订阅服务器 .