Pull to refresh

Comments 2

Решение отправки ивентов через MutableSharedFlow может стрельнуть в кейсе, когда происходит смена конфигурации (смена темы, языка, поворот экрана) и эмитятся два ивента - т.к. extraBufferCapacity = 1, первый ивент может не дойти до UI.

Решение через Channel в этой ситуации выглядит более надежным, т.к. без подписчика он будет ждать отправки ивентов, при этом после отправки он не отправит ивент повторно - как нам и нужно. Одна особенность - подписчик модет быть один, но в кейсе с экраном это как раз ок. Реализация много где была описана, выглядит примерно так:

private val _events = Channel<Event>()
val events: Flow<Event> = _events.receiveAsFlow().flowOn(Dispatchers.Main.immediate)

Это deepresearch от ChatGPT тупо вставленный на хабр? Хоть вставили бы в начало TL;DR о том чем эта статься отличается от 1000 других 10-летней давности прежде чем воду лить о том что и так всем известно.

Sign up to leave a comment.

Articles