Вступить в клуб →
средняявопросKotlin Multiplatform: общий код для Android и iOS

На iOS после закрытия экрана поиска общий ViewModel продолжает слать запросы

// commonMain
class SearchViewModel(private val api: Api) {
    private val scope = CoroutineScope(SupervisorJob() + Dispatchers.Main)

    fun onQuery(q: String) {
        scope.launch { results.value = api.search(q) }
    }
}

На Android корутины отменялись, пока класс наследовал ViewModel. После переноса в общий код на iOS запросы продолжают идти после закрытия экрана. Что упущено?

  • Нужен метод отмены scope при уходе с экрана
  • Нужен Dispatchers.IO вместо Dispatchers.Main
  • Нужен GlobalScope вместо своего scope
  • Нужна замена SupervisorJob на Job

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела