我有一个简单的代码可以连接到设备,并返回Single来处理此连接。设备无法响应,因此有一个超时操作符。
fun getDataFromDevice() : Single<DataFromDevice> {
return Single.create { emmiter ->
val data = fetchSyncData();
Timber.d("is emmiter disposed ${emmiter.isDisposed}")
emitter.onSucces(data);
}
.timeout(30, TimeUnit.SECONDS)
}
然后在演示者中,用户输入到屏幕的代码如下:
//...
getDataFromDevice()
.subscribeOn(Shcedulers.io())
.observeOn(AndroidShcedulers.mainThread())
.doOnDispose { Timber.d("disposed") }
.subscribe(
{ handleSucces(it) },
{ showError(it) }
)
//...
因此,我观察到了奇怪的行为:在第一次现场连接之后,每次 new 单曲都被快速处置。这是一个非常有线的情况,因此我需要获取信息以配置该单项?怎么得到的?