Мое решение обычно состоит в том, что я делаю функции, которые вызывают функции приостановки, также приостанавливаются и выполняют только такие вызовы, как viewModelScope.launch(Dispatchers.IO)
в ViewModel
, который запрашивает данные. Таким образом, ключевое слово suspend немного распространяется по приложению, но я также могу контролировать такие фоновые операции на уровне пользовательского интерфейса, где я могу отменить запрос, если данные больше не требуются, поскольку пользователь переключил представление.