Junior — Middle
Como determinar o âmbito das corutinas na programação?
sobes.tech IA
Resposta da IA
O âmbito de visibilidade de uma coroutine (Coroutine Scope) determina o ciclo de vida e o contexto em que a coroutine é executada. No Android, geralmente usam-se diferentes escopos para gerir o tempo de vida das coroutines e evitar fugas de memória.
Por exemplo:
- GlobalScope — as coroutines vivem enquanto a aplicação estiver a funcionar, não recomendado para tarefas de UI.
- CoroutineScope, ligado ao ciclo de vida do componente (por exemplo,
lifecycleScopenuma Activity ou Fragment) — as coroutines são automaticamente canceladas ao destruir o componente.
Exemplo de uso de lifecycleScope numa Activity:
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
lifecycleScope.launch {
// Código da coroutine, que será cancelada ao destruir a Activity
delay(1000)
println("Coroutine terminada")
}
}
}
Assim, o âmbito de visibilidade da coroutine é determinado pelo scope em que ela é iniciada, e esse scope gere o seu ciclo de vida.