На 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
