Ciclo de vida da Activity com Kotlin

Ciclo de vida da Activity com Kotlin

Nesse tutorial vou descrever Ciclo de vida da Activity com Kotlin assim vamos entender como funciona a cada vez que trocamos de activity.

Primeiramente vamos criar um novo projeto vazio para fazer as mudanças e ver como funciona o ciclo da activity.

Se você ainda não sabe como criar um projeto vario então de uma olhada no tutorial Como criar um projeto no Android Studio.

Logo depois de criar o projeto vamos criar então uma nova Activity com o nome de Main2Activity.

Se você ainda não sabe como criar uma nova activity então de uma olhada no tutorial Como criar uma Activity no Android Studio.

Então vamos fazer o layout da nossa activity_main que deve conter apenas um botão para abrir a nova activity.

activity_main

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:app="http://schemas.android.com/apk/res-auto"
   xmlns:tools="http://schemas.android.com/tools"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   tools:context=".MainActivity">
    <Button
       android:id="@+id/btnNext"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:text="Next"
       app:layout_constraintTop_toTopOf="parent"
       app:layout_constraintBottom_toBottomOf="parent"
       app:layout_constraintStart_toStartOf="parent"
       app:layout_constraintEnd_toEndOf="parent"/>
</androidx.constraintlayout.widget.ConstraintLayout>

Em nosso código da MainActivity deve ficar assim como o seguinte.

MainActivity

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        Log.d("Tela 1: ","onCreate")
        btnNext.setOnClickListener {
            val intent = Intent(this, Main2Activity::class.java)
            startActivity(intent)
            Log.d("Tela 1: ","Button Next")
        }
    }
    override fun onResume() {
        super.onResume()
        Log.d("Tela 1: ","onResume")
    }
    override fun onRestart() {
        super.onRestart()
        Log.d("Tela 1: ","onRestart")
    }
    override fun onPause() {
        super.onPause()
        Log.d("Tela 1: ","onPause")
    }
    override fun onStop() {
        super.onStop()
        Log.d("Tela 1: ","onStop")
    }
    override fun onDestroy() {
        super.onDestroy()
        Log.d("Tela 1: ","onDestroy")
    }
    override fun onBackPressed() {
        super.onBackPressed()
        Log.d("Tela 1: ","onBackPressed")
    }
}

Logo após ter modificado o código da activity principal vamos agora modificar o arquivo de layout da activity_main2.

activity_main2

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:app="http://schemas.android.com/apk/res-auto"
   xmlns:tools="http://schemas.android.com/tools"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   tools:context=".Main2Activity">
    <TextView
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:gravity="center"
       android:text="Tela 2"
       app:layout_constraintTop_toTopOf="parent"
       app:layout_constraintBottom_toBottomOf="parent"/>
</androidx.constraintlayout.widget.ConstraintLayout>

Agora com nosso layout da MainActivity2 pronto vamos modificar o código dela e assim vamos entender como funciona o ciclo entre as Activities.

Main2Activity

class Main2Activity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main2)
        Log.d("Tela 2: ","onCreate")
    }
    override fun onResume() {
        super.onResume()
        Log.d("Tela 2: ","onResume")
    }
    override fun onRestart() {
        super.onRestart()
        Log.d("Tela 2: ","onRestart")
    }
    override fun onPause() {
        super.onPause()
        Log.d("Tela 2: ","onPause")
    }
    override fun onStop() {
        super.onStop()
        Log.d("Tela 2: ","onStop")
    }
    override fun onDestroy() {
        super.onDestroy()
        Log.d("Tela 2: ","onDestroy")
    }
    override fun onBackPressed() {
        super.onBackPressed()
        Log.d("Tela 2: ","onBackPressed")
    }
}

Chegou a hora de compilar e executar o projeto.

Logo depois que o emulador já estiver com seu aplicativo aberto siga os seguintes passos:

  • Clique no botão NEXT
  • Aperte o botão de Voltar do celular
  • Aperte o botão de Voltar do celular

Então agora vamos olhar na aba run e e ver os logs e a sequencia deles, assim podemos ver como funciona o ciclo da activity.

Segue o ciclo da activity:

  • D/Tela 1:: onCreate
  • D/Tela 1:: onResume
  • D/Tela 1:: Button Next
  • D/Tela 1:: onPause
  • D/Tela 2:: onCreate
  • D/Tela 2:: onResume
  • D/Tela 1:: onStop
  • D/Tela 2:: onBackPressed
  • D/Tela 2:: onPause
  • D/Tela 1:: onRestart
  • D/Tela 1:: onResume
  • D/Tela 2:: onStop
  • D/Tela 2:: onDestroy
  • D/Tela 1:: onBackPressed
  • D/Tela 1:: onPause
  • D/Tela 1:: onStop
  • D/Tela 1:: onDestroy

Este é o ciclo de vida da activity no android,

Enfim espero ter ajudado com mais este tutorial sobre Ciclo de vida da Activity com Kotlin.

Ainda assim se estiver com alguma dúvida entre em nosso canal no telegram clicando no link abaixo.




Rodrigo Leutz
Desenvolvedor Web e Android ( Kotlin e Java )