rx-java - refCount 即使发生错误也能保持连接
问题描述
我正在使用 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
推荐阅读
- c# - 为用户设置转发电子邮件地址
- youtube-api - 使用 youtube api 到 youtube 直播的网络摄像头
- azure - 升级到 Azure DevOps Server 2019 和发布管道失败并出现 VssServiceResponseException Page Not Found 错误
- asp.net-core - 如何使用相同 HTTP 动词(和查询参数)的多个控制器方法配置模型绑定?
- performance - clojure - :refer vs :as
- google-apps-script - 在 Google 表格中找不到方法 getRange(int,int)
- web-scraping - Apify 中请求之间的延迟
- python - 无法通过双击打开 Python 3.x 图形
- java - 如何使用自定义命令制作命令行界面?
- python - 如何在我的图中将相同的图例(标签)设置为不同的散点?