Rxjava Общайтесь с наблюдателем, чтобы заставить OnComplete - PullRequest
0 голосов
/ 07 мая 2019

Я создаю наблюдаемое из объекта AudioRecord, которое будет зацикливаться до тех пор, пока не будет выполнено условие.Однажды встретившись, он позвонит по телефону.Я также хочу иметь возможность сигнализировать в наблюдаемую, чтобы остановить цикл.Как только он завершится, мне нужно запустить другую наблюдаемую, поэтому мне нужно, чтобы она завершилась.

    fun startListening(): Completable {
        return Completable.create { channel ->
            val recorder = AudioRecord()
            while (recorder.isRecording() && !xxx) {
                if (recorder.read(buffer, 0, buffer.size) == buffer.size) {
                    break
                }
            }
        record.stop()
        record.release()
        channel.onComplete()
        }
   }

Есть ли какой-либо потокобезопасный способ связи с Наблюдаемым / Завершаемым из основного потока, чтобы он сказал, что он завершен?

...