Android Academy · Lektion

Activities og livscyklus

Lær, hvad en Activity er, forstå Activity-livscyklussens callbacks (onCreate, onStart, onResume, onPause, onStop, onDestroy), og brug ViewBinding.

Lektion 2 af 711 trin

Activities og livscyklus er en gratis Android Academy-lektion på CoddyKit. Dette er lektion 2 af 7. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Android Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Android Academy-kurset indeholder 7 lektioner i alt.

Hvad er en aktivitet?

En aktivitet er et enkelt skærmbillede i din Android-app.

  • Hver skærm (login, startside, indstillinger) er en aktivitet
  • Den håndterer et layout (XML) og brugerinteraktioner
  • Den deklareres i AndroidManifest.xml

Tænk på den som Androids svar på en webside — hver side er en aktivitet.

Aktivitetens livscyklus

En aktivitet gennemgår en række livscyklustilstande, mens brugeren navigerer i appen:

  • Oprettet → Startet → Genoptaget (synlig og aktiv)
  • Sat på pause (delvist skjult)
  • Stoppet (helt skjult)
  • Ødelagt (aktiviteten findes ikke længere)

Du tilsidesætter livscyklusmetoder for at reagere på disse overgange.

Livscyklus-callbacks

De seks vigtigste livscyklus-callbacks:

  • onCreate() — Aktiviteten er ved at blive oprettet. Konfigurer dit layout her.
  • onStart() — Aktiviteten bliver synlig.
  • onResume() — Aktiviteten er i forgrunden, og brugeren kan interagere.
  • onPause() — Brugeren er på vej væk. Gem midlertidige data.
  • onStop() — Aktiviteten er ikke længere synlig.
  • onDestroy() — Aktiviteten er ved at blive ødelagt.

Eksempel på MainActivity

En minimal aktivitet med logning af livscyklussen:

import android.os.Bundle
import android.util.Log
import androidx.appcompat.app.AppCompatActivity

class MainActivity : AppCompatActivity() {

    private val TAG = "MainActivity"

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        Log.d(TAG, "onCreate")
    }

    override fun onResume() {
        super.onResume()
        Log.d(TAG, "onResume — user is here")
    }

    override fun onPause() {
        super.onPause()
        Log.d(TAG, "onPause — saving state")
    }

    override fun onDestroy() {
        super.onDestroy()
        Log.d(TAG, "onDestroy")
    }
}

Hvorfor livscyklussen er vigtig

Almindelige fejl, der skyldes, at livscyklussen ignoreres:

  • Afspilning af en video i onResume uden at sætte den på pause i onPause — dræner batteriet
  • Registrering af en sensorlytter i onCreate uden at afregistrere den i onDestroy — hukommelseslæk
  • Manglende lagring af formulardata i onPause — brugeren mister sine fremskridt under et telefonopkald

Lagring af tilstand: onSaveInstanceState

Når brugeren vender telefonen, bliver aktiviteten ødelagt og oprettet igen. Din brugerfladetilstand går tabt.

Gem midlertidig tilstand i onSaveInstanceState(bundle), og gendan den i onCreate(savedInstanceState).

Lagring og gendannelse af tilstand

Bevar data på tværs af konfigurationsændringer:

class CounterActivity : AppCompatActivity() {

    private var count = 0

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_counter)

        // Restore saved state after rotation
        count = savedInstanceState?.getInt("count") ?: 0
    }

    override fun onSaveInstanceState(outState: Bundle) {
        super.onSaveInstanceState(outState)
        outState.putInt("count", count)
    }
}

Tilbage-stak

Android administrerer en tilbage-stak af aktiviteter:

  • Når en ny aktivitet startes, lægges den øverst i stakken
  • Når der trykkes på Tilbage, fjernes den øverste aktivitet fra stakken og ødelægges
  • Den forrige aktivitet genoptages automatisk

Derfor bør du ikke kalde finish() manuelt, medmindre du specifikt vil fjerne den aktuelle skærm fra tilbage-stakken.

Konfigurationsændringer

Enhver konfigurationsændring (rotation, sprogændring eller tilslutning af tastatur) opretter som standard aktiviteten igen.

Den moderne løsning er at bruge en ViewModel — den overlever konfigurationsændringer og opbevarer dine data sikkert. Du lærer om ViewModel i arkitekturmodulet.

Hurtigt tjek

I hvilken livscyklusmetode skal du konfigurere layoutet (kalde setContentView)?

Opsummering: aktiviteter og livscyklus

Du forstår nu Android-aktiviteter:

  • En aktivitet = én skærm i din app
  • Livscyklus: onCreate → onStart → onResume → onPause → onStop → onDestroy
  • Gem midlertidig tilstand i onSaveInstanceState
  • Rotation ødelægger og opretter aktiviteten igen
  • Android administrerer automatisk en tilbage-stak

Næste trin: Design skærme med layout og visninger.

Gratis at komme i gang

Lær Kotlin med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
36
Lektioner
152

Ofte stillede spørgsmål

Er lektionen “Activities og livscyklus” gratis?

Ja — alle 3 lektioner i læringssporet Android Academy, inklusive “Activities og livscyklus”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Android Academy-kurset indeholder 7 lektioner i alt.

Hvad lærer jeg i “Activities og livscyklus”?

Lær, hvad en Activity er, forstå Activity-livscyklussens callbacks (onCreate, onStart, onResume, onPause, onStop, onDestroy), og brug ViewBinding. Du øver dig i Android Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Android Academy?

Der kræves ingen tidligere erfaring. Android Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 2 af 7.

Hvor lang tid tager lektionen “Activities og livscyklus”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Android Academy-lektion?

Ja. Alle Android Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Projektstruktur og manifest
  2. Activities og livscyklus
  3. Layouts og views
  4. Håndtering af brugerinput
  5. Intents og navigation
  6. Fragments
  7. Tilladelser og runtime-forespørgsler
← Tilbage til Android Academy