Activities og livscyklus
Lær, hvad en Activity er, forstå Activity-livscyklussens callbacks (onCreate, onStart, onResume, onPause, onStop, onDestroy), og brug ViewBinding.
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
onResumeuden at sætte den på pause ionPause— dræner batteriet - Registrering af en sensorlytter i
onCreateuden at afregistrere den ionDestroy— 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.
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
- Projektstruktur og manifest
- Activities og livscyklus
- Layouts og views
- Håndtering af brugerinput
- Intents og navigation
- Fragments
- Tilladelser og runtime-forespørgsler