0

我特别需要一个可观察的。

通常,我的 observables 在不同的线程中运行。但是,有时他们需要在订阅过程中阻塞另一个线程。未来的行为方式。

一个例子:

val o = Observable.create(/* computation */)
  .subscribeOn(Schedulers.newThread())
  .observeOn(/* current thread */);

val s = o.subscribe(/* subscriber */);`

突然,另一个线程上发生了一个事件,该事件向当前线程发出信号,表明它应该等待订阅的执行s。(一个例子是 Android 的onPause.)

我怎么做?我如何等待订阅s,甚至可能检索所有结果?

(主题?)

4

1 回答 1

0

最简单的解决方案似乎是:

  1. 使 observable 成为一个缓存的Observable#cache(). (如果您的 observable 是一个值流,请使用适当的 Subject 并将其用作 observable。)
  2. 订阅缓存的 observable / subject。
  3. 当事件发生时,只需订阅您需要的线程上缓存的 observable / subject。酌情取消订阅。
于 2015-08-08T11:58:04.440 回答