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