Junior — Middle
Podes explicar o que é o SupervisorJob no contexto das corutinas e gestão de tarefas em Kotlin?
sobes.tech IA
Resposta da IA
SupervisorJob — é um tipo especial de Job no Kotlin Coroutines, usado para gerir um grupo de coroutines, onde um erro numa delas não cancela as outras.
Num Job normal (ou CoroutineScope), quando ocorre uma exceção numa coroutine filha, todas as outras são canceladas. Com SupervisorJob, este comportamento muda: um erro numa coroutine não afeta a execução das outras.
Exemplo de uso:
val supervisor = SupervisorJob()
val scope = CoroutineScope(Dispatchers.Default + supervisor)
scope.launch {
// Coroutine que pode falhar
}
scope.launch {
// Outra coroutine que continuará a trabalhar mesmo que a primeira falhe
}
Isto é útil quando se quer lançar várias tarefas independentes em paralelo e não parar tudo se uma delas falhar.