Убедитесь, что вы правильно работаете с получением значений.
Если вы используете ConflatedBroadcastChannel, вы можете использовать OpenSubscription , чтобы получить ReceiveChannel , или вы можете его представить как поток (с asFlow ).
Обратите внимание, что consume
и consumeEach
являются терминальными, они выполняют действие, а затем отменяют канал после выполнения блока. См. это .
Первый случай:
val receivingChannel = MyRepository.myConflatedChannel.openSubscription()
// then you can consume values using for example a for loop, e.g.:
launch {
for (value in receivingChannel) {
// do something
}
}
Второй случай:
val receivingFlow = MyRepository.myConflatedChannel.asFlow()
launch {
receivingFlow.collect {
// do something
}
}