вопрос именно про флоу.
inline fun <T> Flow<T>.collectLifecycle(lifecycleOwner: LifecycleOwner, crossinline block: (T) -> Unit) {
lifecycleOwner.lifecycleScope.launchWhenStarted {
collect { block.invoke(it) }
}
}
Коллектинг флоу суспендится, если будет onStop, и когда пользователь вернётся - коллектинг зарезьюмится. Проблема в том, что если в этом промежутке было много новых ивентов, то они вывалятся пачкой, а мне надо взять только последнее. Добавление conflate() не помогает, помогло debounce(10), но это не подходящее решение, надо без дебаунса. Есть идеи?
А какой у этого flow источник?
есть метод onCompletion он вызывается как раз когда отменяешь, можно покопать в эту сторону
Обсуждают сегодня