rx-Java
を使用して遅延操作を一時停止/再開しようとしていますが、驚くことにそれを行う方法がわかりません。RXのタイマー/遅延の一時停止/再開
明らかに、特定のTimer
スレッドを作成して時間を記録することで、それを行う方法はわかりますが、より洗練された反応的な方法を探しています。
私は3つの異なる観察可能性、playDetected
、pauseDetected
の1つ、stopDetected
の1つを持っています。私は私がこれまで持っているどのような別のPLAY
を得るときPLAY
の一定の遅延の後に何かを発するが、ときに私のポーズが観察発し、一時停止、および再開するとします。(それはkotlin
しかしJava
、擬似コード、または任意に書かれています言語は
val playSubscription = playDetected
.delay(DELAY, SECONDS, schedulers.computation)
.subscribe { emitFinalEvent(it) }
stopDetected.subscribe { playSubscription.unsubscribe() }
私の遅延は動作します)答えを行います、と私はSTOP
を検出したときに、次PLAY
は再びそれを始めることができるように、それが正常に遅延を削除します。しかし、中断して再開する方法pauseDetected
何かを放出する???ここで
私は、再開後、最初からではなく、遅延が止まった時点で開始したいと思いますか?あなたの遅延は、 10秒後、すでに6秒経過してからpauseEventが発生したとします。 playEventが送出されるとすぐに遅延が4秒になるはずです(最初の遅延が10秒、6秒が経過したので? – Rzodkiewka
本当に遅延が働かないと思うのですが)。私は別の解決策に取り組んでいます。間隔(1秒)を使ってダニの動作を確認しました。ここで回答を投稿します。 – Guillaume
あなたの質問に関連していますか?:http://stackoverflow.com/questions/ 35782767/how-can-an-observable-be-paused-without-loosing-the-items-emitting/35805100#35805100 – yurgis