指定操作超时的首选方法

时间:2016-09-15 09:06:54

标签: rxandroidble

为连接或操作指定超时的推荐方法是什么?目前我使用:

ConnectionObservable = mDevice
                .establishConnection(mRxAppCompatActivity, false)
                .timeout(DEFAULT_TIMEOUT_IN_MILLIS, TimeUnit.MILLISECONDS)

但我得到的印象是偶尔随后自动关闭和断开gatt并不总能正常完成,因为我有时无法重新连接到同一设备。

会像

.takeUntil(disconnectTrigger)

在更多推荐超时后手动触发disconnectTrigger.onNext()?

1 个答案:

答案 0 :(得分:1)

使用.establishConnection()调用autoConnect = false函数将在约30秒后自动失败。

断开连接的两个选项同样可以接受。在我看来,特定解决方案的使用取决于用例。

请注意,这些超时不会对已经启动的操作产生太大影响 - 唯一的例外是连接操作可以取消,但此功能最近已合并到master分支。 (https://github.com/Polidea/RxAndroidBle/commit/604853c4f39c5e8a19e02415c50b547b0befd0e7)尚未处理的操作将从操作队列中删除。

我认为您可能正在遭受断开的断开机制(很难确定没有日志)。此处存在此问题的错误:https://github.com/Polidea/RxAndroidBle/issues/63

最好的问候