我使用refCount保持BLE连接5分钟。在我遇到连接问题之前,这一直很有效,refCount仍然保持连接,并重播错误。
有没有一种方法可以让refCount在出现错误时立即断开连接,或者让重播而不是重播错误?
bleDevice
.establishConnection(false)
.replay(1)
.refCount(1, 5, TimeUnit.MINUTES)
使用RxJava 3refCount
运算符是实现所需功能的简单方法。您可以使用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