Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 是否有可能使用CompositeDisposable lead到OOM?_Java_Android_Rx Java2_Rx Android - Fatal编程技术网

Java 是否有可能使用CompositeDisposable lead到OOM?

Java 是否有可能使用CompositeDisposable lead到OOM?,java,android,rx-java2,rx-android,Java,Android,Rx Java2,Rx Android,复合可拆卸:一种可容纳多种其他一次性物品的一次性容器,具有添加和删除的复杂性。 在某些情况下,我会创建许多一次性可观察的来做一些耗时的工作。每次创建可观察订户时,都会创建一个一次性订户并将其添加到此“容器”中 最后,当您退出活动或某些场景时,此“容器”可以是clear()或dispose(),移除所有一次性文件,无论它们是否完成 因此,我的问题是,在退出当前活动之前,我是否可以删除特定的、已经完成的订户,以避免“容器”的大小无限增加 更新: 当onComplete或onDispose可能达到此目

复合可拆卸:一种可容纳多种其他一次性物品的一次性容器,具有添加和删除的复杂性。

在某些情况下,我会创建许多一次性可观察的来做一些耗时的工作。每次创建可观察订户时,都会创建一个一次性订户并将其添加到此“容器”中

最后,当您退出活动或某些场景时,此“容器”可以是
clear()
dispose()
,移除所有一次性文件,无论它们是否完成

因此,我的问题是,在退出当前活动之前,我是否可以删除特定的、已经完成的订户
,以避免“容器”的大小无限增加

更新:

onComplete
onDispose
可能达到此目标时,将观察者从容器中移除,但是否有任何方便的解决方案?

您必须记住消费者并在正确的时间将其移除。有一个扩展功能可以帮助您做到这一点:@akarnokd我可以使用这个扩展功能或自己实现一个观察器。但我需要改变之前所有的接收使用。这似乎有点“沉重”。使用标准RxJava工具集没有更轻松的方法,您必须到处编码和替换用法。