Sobes.tech
Junior

Welke methoden van de levenscyclus van Activity ken je en hoe worden ze uitgevoerd?

sobes.tech AI

Antwoord van AI

  • onCreate(): Wordt aangeroepen bij de eerste creatie van de Activity. Gebruikt om de gebruikersinterface en gegevens te initialiseren.
  • onStart(): De Activity wordt zichtbaar voor de gebruiker.
  • onResume(): De Activity wordt actief en bevindt zich op de voorgrond. De gebruiker kan ermee interageren.
  • onPause(): Wordt aangeroepen wanneer de Activity naar de achtergrond gaat of een andere Activity deze gedeeltelijk bedekt. Gebruikt om de staat op te slaan die snel hersteld moet worden.
  • onStop(): De Activity is niet meer zichtbaar voor de gebruiker. Gebruikt om niet-gebruikte bronnen vrij te maken.
  • onDestroy(): Wordt aangeroepen voordat de Activity wordt vernietigd. Gebruikt om definitieve bronnen op te ruimen.
  • onRestart(): Wordt na onStop() aangeroepen, wanneer de Activity weer zichtbaar wordt.

Uitvoeringsvolgorde bij het starten: onCreate() -> onStart() -> onResume().

Volgorde bij het naar achteren gaan (bijvoorbeeld door op de Home-knop te drukken): onPause() -> onStop().

Volgorde bij het terugkeren uit de achtergrond: onRestart() -> onStart() -> onResume().

Volgorde bij het vernietigen van de Activity: onPause() -> onStop() -> onDestroy().

Bij het draaien van het scherm wordt de Activity vernietigd en opnieuw gemaakt. Volgorde: onPause() -> onStop() -> onDestroy() -> onCreate() -> onStart() -> onResume(). Om de staat op te slaan wordt onSaveInstanceState() gebruikt (aangeroepen vóór onStop()) en het herstellen in onCreate() of onRestoreInstanceState() (aangeroepen na onStart()).

class MyActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main) // UI initialiseren
        // Herstellen van de staat uit savedInstanceState
    }

    override fun onStart() {
        super.onStart()
        // Activity wordt zichtbaar
    }

    override fun onResume() {
        super.onResume()
        // Activity is op de voorgrond, klaar voor interactie
    }

    override fun onPause() {
        super.onPause()
        // Activity gaat naar de achtergrond
        // Snel herstelbare staat opslaan
    }

    override fun onStop() {
        super.onStop()
        // Activity is niet zichtbaar
        // Resources vrijmaken
    }

    override fun onDestroy() {
        super.onDestroy()
        // Activity wordt vernietigd
        // Definitieve opruiming van resources
    }

    override fun onRestart() {
        super.onRestart()
        // Activity keert terug uit de achtergrond
    }

    override fun onSaveInstanceState(outState: Bundle) {
        super.onSaveInstanceState(outState)
        // Staat opslaan vóór vernietiging
    }

    override fun onRestoreInstanceState(savedInstanceState: Bundle) {
        super.onRestoreInstanceState(savedInstanceState)
        // Staat herstellen
    }
}