【发布时间】:2017-06-18 12:24:45
【问题描述】:
我有一个Activity,我在其中创建和订阅Single 类的多个实例(每个实例都在单独的后台线程中做一些工作)。对于每个订阅,我将创建的Disposable 实例添加到CompositeDisposable 实例,该实例的范围为Activity。当Activity 被销毁时,我正在调用CompositeDisposable.clear() 方法来处理Activity 中的所有订阅。当然,这意味着所有Disposable 实例(包括那些已完成工作的订阅)都在我的Activity 中徘徊,直到Activity 被销毁。
这样可以吗,还是应该在每次特定的Single 实例完成工作时为每个单独的订阅调用Disposable.dispose()(即当SingleObserver 收到onSuccess 或onError 回调时)?后一种方法的问题是我必须跟踪哪个Disposable 链接到哪个SingleObserver,这违背了使用CompositeDisposable 的意义。
【问题讨论】: