我在Android中使用ReactiveX。我写了这段代码:
()
预期的结果是记录"已订阅"然后"接下来收到",并在无限期三秒后重复。
发生这种情况,但我的问题是Observable.just(true)
.doOnSubscribe(() -> Log.d("MyApp", "Subscribed"))
.repeatWhen(it -> it.delay(3, TimeUnit.SECONDS))
.subscribe(next -> Log.d("MyApp", "Next received"));
命令从第二次开始在计算线程中执行。
Log.d
接受repeatWhen
参数。但我想在原始主题中运行。
由于
答案 0 :(得分:0)
我想出了如何解决它。
"延迟"运算符默认在计算线程中运行,但是可以通过参数传递它应该运行的线程。
Observable.just(true)
.doOnSubscribe(() -> Log.d("MyApp", "Subscribed"))
.repeatWhen(it -> it.delay(3, TimeUnit.SECONDS, Schedulers.immediate()))
.subscribe(next -> Log.d("MyApp", "Next received"));