Код: Выделить всё
class OrderViewModel(application: Application) : AndroidViewModel(application) {
private val uiScope = viewModelScope
private val _isOrderStatusChanged = MutableSharedFlow(replay = 1)
val isOrderStatusChanged: SharedFlow
get() = _isOrderStatusChanged
fun updateIsOrderStatusChanged() = _isOrderStatusChanged.emit(uiScope, true)
}
Код: Выделить всё
viewLifecycleOwner.lifecycleScope.launch {
viewLifecycleOwner.repeatOnLifecycle(Lifecycle.State.CREATED) {
orderViewModel.isOrderStatusChanged.collect {
if (it) {
Log.v("xxx", "refreshed!")
viewModel.refreshActiveOrders() //similar in CompletedOrderFragment
}
}
}
}
< /code>
Здесь возникает проблема: когда я изменил статус и возвращаюсь на страницы, они оба получают уведомление и обновления. Тем не менее, теперь я нажимаю на любой элемент заказа, чтобы перейти на страницу редактора, но ничего не делаю, и возвращаюсь, Collect {} Некоторая дополнительная информация:
- Зачем использовать ViewLifeCycleOwner вместо повторного кода> 1 . Sharedflow .
Подробнее здесь: https://stackoverflow.com/questions/720 ... odel-issue
Мобильная версия