refCount 即使在出错后也保持连接

refCount keeping connection even after an error

我正在使用 refCount 保持 BLE 连接 5 分钟。在我遇到连接问题之前,此方法运行良好,refCount 仍保持连接并重播重播错误。

有什么方法可以让 refCount 在出现错误时立即断开连接,或者让重播不重播错误?

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

实现您想要的效果的简单方法是使用 RxJava 3 refCount 运算符。您可以使用 RxJava 2 <=> 3 互操作性库 RxJavaBridge.

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