Sobes.tech
Junior

Welche Methoden des Lebenszyklus einer Activity kennen Sie und wie werden sie ausgeführt?

sobes.tech KI

Antwort von AI

  • onCreate(): Wird beim ersten Erstellen der Activity aufgerufen. Wird verwendet, um die Benutzeroberfläche und Daten zu initialisieren.
  • onStart(): Die Activity wird für den Benutzer sichtbar.
  • onResume(): Die Activity wird aktiv und befindet sich im Vordergrund. Der Benutzer kann mit ihr interagieren.
  • onPause(): Wird aufgerufen, wenn die Activity in den Hintergrund wechselt oder eine andere Activity sie teilweise überdeckt. Wird verwendet, um den Zustand zu speichern, der schnell wiederhergestellt werden muss.
  • onStop(): Die Activity ist für den Benutzer nicht mehr sichtbar. Wird verwendet, um ungenutzte Ressourcen freizugeben.
  • onDestroy(): Wird vor der Zerstörung der Activity aufgerufen. Wird verwendet, um endgültige Ressourcen zu bereinigen.
  • onRestart(): Wird nach onStop() aufgerufen, wenn die Activity wieder sichtbar wird.

Ausführungsreihenfolge bei Start: onCreate() -> onStart() -> onResume().

Ausführungsreihenfolge beim Übergang in den Hintergrund (z.B. beim Drücken der Home-Taste): onPause() -> onStop().

Ausführungsreihenfolge beim Zurückkehren aus dem Hintergrund: onRestart() -> onStart() -> onResume().

Ausführungsreihenfolge beim Zerstören der Activity: onPause() -> onStop() -> onDestroy().

Beim Drehen des Bildschirms wird die Activity zerstört und neu erstellt. Reihenfolge: onPause() -> onStop() -> onDestroy() -> onCreate() -> onStart() -> onResume(). Zum Speichern des Zustands wird onSaveInstanceState() (vor onStop() aufgerufen) und die Wiederherstellung in onCreate() oder onRestoreInstanceState() (nach onStart() aufgerufen) verwendet.

class MyActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main) // UI-Initialisierung
        // Zustand aus savedInstanceState wiederherstellen
    }

    override fun onStart() {
        super.onStart()
        // Activity wird sichtbar
    }

    override fun onResume() {
        super.onResume()
        // Activity im Vordergrund, für Interaktionen bereit
    }

    override fun onPause() {
        super.onPause()
        // Activity wechselt in den Hintergrund
        // Schnelles Wiederherstellen des Zustands
    }

    override fun onStop() {
        super.onStop()
        // Activity ist nicht sichtbar
        // Ressourcen freigeben
    }

    override fun onDestroy() {
        super.onDestroy()
        // Activity wird zerstört
        // Endgültige Ressourcenbereinigung
    }

    override fun onRestart() {
        super.onRestart()
        // Activity kehrt aus dem Hintergrund zurück
    }

    override fun onSaveInstanceState(outState: Bundle) {
        super.onSaveInstanceState(outState)
        // Zustand vor Zerstörung speichern
    }

    override fun onRestoreInstanceState(savedInstanceState: Bundle) {
        super.onRestoreInstanceState(savedInstanceState)
        // Zustand wiederherstellen
    }
}