Как получить последнее значение, созданное Kotlin SharedFlow в Android?Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Как получить последнее значение, созданное Kotlin SharedFlow в Android?

Сообщение Anonymous »


Я работаю с Kotlin SharedFlows и пытаюсь получить только последнее значение, отправленное потоком. Я пробовал использовать оператор last(), но он не работает должным образом.

основной

fun main(): Unit = runBlocking { вал eventBus = EventBus() запуск { vallatestValue = eventBus.value.lastOrNull() если (latestValue!= ноль) { println("Последнее значение: $latestValue") } } запуск { повторить(5) { eventBus.increment(оно) } } запуск { задержка (5 секунд) (5..10).forEach { eventBus.increment(оно) } } } EventBus

класс EventBus { частный val _value = MutableSharedFlow() значение val: SharedFlow = _value.asSharedFlow() приостановить веселье приращение (число: Int) { _value.emit(число) } } Объяснение

Я хочу захватить только последнее значение, выданное наблюдаемым. Например, если наблюдаемый объект выдает значения от 0 до 4, а затем делает паузу на некоторое время, а затем следуют значения от 5 до 10, я хочу сохранить только последнее значение для каждого интервала. Для начального интервала (от 0 до 4) я хочу сохранить 4, а для второго интервала (от 5 до 10) я хочу сохранить 10. Достижимо ли это?

Спасибо
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»