如何找出处置单?

时间:2019-05-17 11:10:11

标签: android rx-java2

我有一个简单的代码可以连接到设备,并返回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 单曲都被快速处置。这是一个非常有线的情况,因此我需要获取信息以配置该单项?怎么得到的?

0 个答案:

没有答案