У меня есть простой код для подключения к устройству и возврата 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 Сингл был быстро утилизирован.Это очень запутанная ситуация, поэтому мне нужно получить информацию, как распорядиться синглом?Как это получить?