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ósonStop(), 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
}
}