Rx java refCount即使在发生错误后仍保持连接

Rx java refCount即使在发生错误后仍保持连接,rx-java,reactive-programming,rxandroidble,rx-kotlin,Rx Java,Reactive Programming,Rxandroidble,Rx Kotlin,我正在使用refCount保持BLE连接5分钟。在我遇到连接问题之前,这一切都很好,refCount仍然保持连接,replay会重放错误 有没有一种方法可以使refCount在出现错误时立即断开连接,或者使replay不重播错误 bleDevice .establishConnection(false) .replay(1) .refCount(1, 5, TimeUnit.MINUTES) 实现所需功能的

我正在使用refCount保持BLE连接5分钟。在我遇到连接问题之前,这一切都很好,refCount仍然保持连接,replay会重放错误

有没有一种方法可以使refCount在出现错误时立即断开连接,或者使replay不重播错误

        bleDevice
            .establishConnection(false)
            .replay(1)
            .refCount(1, 5, TimeUnit.MINUTES)

实现所需功能的简单方法是使用rxjava3
refCount
运算符。您可以使用RXJava23互操作性库


是否有一个超时,在此超时之后,
.refCount()
将断开连接,如果没有订阅服务器是必需的?您有哪个RxJava版本?3.x应该像您期望的那样工作。不幸的是RxAndroidBle仍然是基于2.x的。这是计划更改的。@Dariuszweweryn BT连接创建速度慢(需要用户在BT设备上确认连接),因此对于此特定设备,我们希望保持连接。
val connectionObservable = bleDevice
    .establishConnection(false)
    .`as`(RxJavaBridge.toV3Observable())
    .replay(1)
    .refCount(1, 5, TimeUnit.MINUTES)
    .to(RxJavaBridge.toV2Observable()) // optional if you want to stick to RxJava 3