问题描述
我正在使用 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