Sobes.tech
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, lifecycleScope numa 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.