Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/195.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 ConnectableObservable何时终止?_Java_Android_Rx Java_Rx Java2 - Fatal编程技术网

Java ConnectableObservable何时终止?

Java ConnectableObservable何时终止?,java,android,rx-java,rx-java2,Java,Android,Rx Java,Rx Java2,我有一个可以观察到的东西,它有一些魔力,我把它作为活动范围中的一个单件来使用。因此,谁想得到更新,可以订阅,可以得到最后的排放值和新的排放量 Observable<Object> currentZoneObservable; public Observable<Object> getCurrentZoneObservable() { if (currentZoneObservable == null) { currentZ

我有一个可以观察到的东西,它有一些魔力,我把它作为活动范围中的一个单件来使用。因此,谁想得到更新,可以订阅,可以得到最后的排放值和新的排放量

Observable<Object> currentZoneObservable;

    public Observable<Object> getCurrentZoneObservable() {
        if (currentZoneObservable == null) {
            currentZoneObservable = someUseCase.getObservable()
            .replay(1)
            .autoConnect();
        }
        return currentZoneObservable;
    }
可观测电流区可观测;
公共可观测getCurrentZoneObservable(){
if(currentZoneObservable==null){
currentZoneObservable=someUseCase.getObservable()
.重播(1)
.autoConnect();
}
可观测的返回电流区;
}
我要确保所有的订户,作为一个好公民退订。我甚至在计算
doonSubscribe()
doonSubscribe()
中的订阅者数量。当应用程序进入后台时,它有0个订阅者

我的问题是,
connectableObservable
从未完成,如果它正在执行某些操作,它仍然会继续进行。例如,如果它在网络不可用时重试某个网络呼叫,它会继续这样做

当没有订户时,如何确保我的
connectableObservable
停止?我的理解是,
.autoConnect()
应该解决这个问题。

在没有观察员的情况下不会取消订阅,而是会取消订阅

你可能会对使用a:一些好的文档感兴趣

不再有观察员时不会取消订阅-会

你可能会对使用a:一些好的文档感兴趣

:返回一个可观察对象,当第一个观察者订阅时,该可观察对象将自动连接到此可连接可观察对象

所以即使所有的订户都退订了,observable仍然会存在

:返回与此ConnectableObservable保持连接的Observable,只要此ConnectableObservable至少有一个订阅

这将使可连接的可观察系统停止所有正在进行/未来的排放

从autoConnect()更改为refCount()解决了问题。:返回一个可观察对象,当第一个观察者订阅时,该可观察对象将自动连接到此可连接可观察对象

所以即使所有的订户都退订了,observable仍然会存在

:返回与此ConnectableObservable保持连接的Observable,只要此ConnectableObservable至少有一个订阅

这将使可连接的可观察系统停止所有正在进行/未来的排放

从autoConnect()更改为refCount()解决了这个问题。