Sobes.tech
Junior

Quais métodos do ciclo de vida da Activity você conhece e como eles são executados?

sobes.tech IA

Resposta da IA

  • onCreate(): É chamado quando a Activity é criada pela primeira vez. Usado para inicializar a interface de utilizador e os dados.
  • onStart(): A Activity torna-se visível para o utilizador.
  • onResume(): A Activity torna-se ativa e está em primeiro plano. O utilizador pode interagir com ela.
  • onPause(): É chamado quando a Activity passa para o plano de fundo ou outra Activity a cobre parcialmente. Usado para guardar o estado que precisa ser restaurado rapidamente.
  • onStop(): A Activity já não é visível para o utilizador. Usado para libertar recursos não utilizados.
  • onDestroy(): É chamado antes de a Activity ser destruída. Usado para limpar recursos finais.
  • onRestart(): É chamado após onStop(), quando a Activity volta a ser visível.

Sequência de execução dos métodos ao iniciar: onCreate() -> onStart() -> onResume().

Sequência ao passar para o plano de fundo (por exemplo, ao pressionar o botão Home): onPause() -> onStop().

Sequência ao regressar do plano de fundo: onRestart() -> onStart() -> onResume().

Sequência ao destruir a Activity: onPause() -> onStop() -> onDestroy().

Ao rodar a tela, a Activity é destruída e recriada. Sequência: onPause() -> onStop() -> onDestroy() -> onCreate() -> onStart() -> onResume(). Para guardar o estado, usa-se onSaveInstanceState() (chamado antes de onStop()) e a restauração em onCreate() ou onRestoreInstanceState() (chamado após onStart()).

class MyActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main) // Inicialização da UI
        // Restaurar estado de savedInstanceState
    }

    override fun onStart() {
        super.onStart()
        // A Activity torna-se visível
    }

    override fun onResume() {
        super.onResume()
        // A Activity está em primeiro plano, disponível para interação
    }

    override fun onPause() {
        super.onPause()
        // A Activity passa para o plano de fundo
        // Guardar estado que pode ser restaurado rapidamente
    }

    override fun onStop() {
        super.onStop()
        // A Activity não é visível
        // Libertar recursos
    }

    override fun onDestroy() {
        super.onDestroy()
        // A Activity é destruída
        // Limpeza final de recursos
    }

    override fun onRestart() {
        super.onRestart()
        // A Activity regressa do fundo
    }

    override fun onSaveInstanceState(outState: Bundle) {
        super.onSaveInstanceState(outState)
        // Guardar estado antes de destruir
    }

    override fun onRestoreInstanceState(savedInstanceState: Bundle) {
        super.onRestoreInstanceState(savedInstanceState)
        // Restaurar estado
    }
}