Как узнать, что выбрано сингл? - PullRequest
0 голосов
/ 17 мая 2019

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

...