Sobes.tech
Назад к вопросам
Junior — Middle
64

Каким образом можно отменить задачу, запущенную через Kotlin Coroutine?

Компании, где спрашивали
Effective Mobile

Ответ от нейросети

sobes.tech AI

Для отмены задачи, запущенной через Kotlin Coroutine, используется механизм отмены через Job.

Когда вы запускаете корутину, она возвращает объект Job, который можно использовать для отмены:

val job = CoroutineScope(Dispatchers.Default).launch {
    // Долгая операция
    for (i in 1..1000) {
        if (!isActive) return@launch // проверка на отмену
        println("Iteration $i")
        delay(100)
    }
}

// Позже, чтобы отменить задачу:
job.cancel()

Важно внутри корутины периодически проверять состояние isActive или использовать функции, поддерживающие отмену (например, delay), чтобы корутина могла корректно завершиться при отмене.

Также можно использовать withTimeout или withTimeoutOrNull для автоматической отмены по таймауту.