其他分享
首页 > 其他分享> > android – 何时调用dispose并清除CompositeDisposable

android – 何时调用dispose并清除CompositeDisposable

作者:互联网

我的问题可能是How to use CompositeDisposable of RxJava 2?的重复但要求澄清一个疑问.
根据接受的答案

// Using clear will clear all, but can accept new disposable
disposables.clear(); 
// Using dispose will clear all and set isDisposed = true, so it will not accept any new disposable
disposables.dispose(); 

在我的例子中,我使用片段作为我的视图(在MVP中查看图层),在某些情况下,我将活动片段添加到backstack,实际上不会杀死Fragment但只会查看其视图.这意味着只调用onDestroyView而不是onDestroy.后来我可以回到Backstack中的同一个片段,所以只有它的视图才被重新创建.
我有一个CompositeDisposable作为我的BaseFragment的成员,它持有订阅.

我的问题是,我应该每次在onDestroyView上调用CompositeDisposable吗?一旦视图恢复,它可以再次获取订阅吗?并且在onDestroy上调用dispose,这样当片段本身被销毁时,不再需要使用一次性用品了吗?

如果错了,处理的正确方法是什么.当清除和处置必须被调用.?

解决方法:

您是对的,您可以保存自己在每次创建相应视图时创建新的CompositeDisposable,而是将CompositeDisposable视为绑定到onCreate / onDestroy生命周期方法的单个实例,并将聚合的一次性用作片段视图的一部分在onDestroyView中调用clear.

标签:rx-java2,android
来源: https://codeday.me/bug/20191007/1868863.html