我正在片段中使用RxJava ReplaySubject.
我试图以某种方式使用ReplaySubject,我希望Subject执行一个过程直到完成(可能超出片段的生命周期).
在完成该过程后,我想释放资源 - 据我所知 - 通过在注册观察者时取消订阅(在我的情况下,是主题本身)来完成.
在这个github问题中,线程 @benjchristensen说:
如果它是一个Observable,那么它应该发出一个onCompleted并完成.
如果它是Observer,则它应该取消订阅它在调用Observable.subscribe时收到的订阅,它将使Observable有机会关闭和清理.
如果它是一个主体 - 它既是观察者又是观察者 - 行为是什么?如果我在主题上调用onComplete,这是否基本上意味着订阅被停止,因此我不需要通过注册观察者手动取消订阅我获得的订阅?
kjo*_*nes 62
主题是上可观察到的,允许你饲料的顶部相对较薄的层onNext(),onCompleted()并onError()从外部可观察源呼叫.他们的取消订阅行为与Observable相同.如果onCompleted()还是onError()被呼吁的主题,该用户将被取消订阅.无需调用unsubscribe()返回的订阅Observable.subscribe().
对于a ReplaySubject,请注意,在收集垃圾之前,不会清理资源.即使在onCompleted()被称为上ReplaySubject,用户仍然可以订阅,它将接收到原始的一切onNext(),onCompleted()或者onError()说是前所做的订阅服务.
| 归档时间: |
|
| 查看次数: |
14147 次 |
| 最近记录: |