Android Academy · Les

rememberSaveable

Behoud state bij configuratiewijzigingen.

Les 4 van 413 stappen

rememberSaveable is een gratis Android Academy-les op CoddyKit. Dit is les 4 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Android Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Android Academy bevat in totaal 4 lessen.

Het probleem met remember

remember blijft behouden tijdens recompositie, maar niet tijdens configuratiewijzigingen zoals schermrotatie. Wanneer de activiteit opnieuw wordt gemaakt, gaat de onthouden status verloren en wordt deze teruggezet naar de beginwaarde.

Maak kennis met rememberSaveable

rememberSaveable werkt net als remember, maar slaat de waarde ook op tijdens configuratiewijzigingen en het beëindigen van het proces, waarna deze wordt hersteld.

var count by rememberSaveable { mutableStateOf(0) }

Voorbeeld met rotatie

Met gewone remember wordt een teller bij het draaien van de telefoon teruggezet naar 0. Met rememberSaveable blijft de teller tijdens het draaien behouden.

Hoe de waarde wordt opgeslagen

Achter de schermen slaat rememberSaveable de waarde op in de saved instance state-Bundle van de activiteit. Dit is hetzelfde mechanisme dat het oude View-systeem gebruikte voor onSaveInstanceState.

Ondersteunde typen

Typen die in een Bundle passen, worden automatisch opgeslagen: primitieve typen, String en Parcelable-objecten. Voor aangepaste typen is wat extra werk nodig.

Beëindiging van het proces

Als Android je app op de achtergrond beëindigt om geheugen vrij te maken en de gebruiker daarna terugkeert, herstelt rememberSaveable de opgeslagen status, zodat het scherm eruitziet zoals de gebruiker het heeft achtergelaten.

Aangepaste savers

Geef voor een type dat niet automatisch kan worden opgeslagen een Saver op die het type omzet naar en vanuit een opslaande vorm. Compose biedt hulpfuncties zoals listSaver en mapSaver.

val saver = listSaver<MyState, Any>(
    save = { listOf(it.a, it.b) },
    restore = { MyState(it[0] as Int, it[1] as String) }
)

Een aangepaste saver gebruiken

Geef de saver door aan rememberSaveable via de parameter saver, zodat Compose weet hoe het je type moet bewaren.

var state by rememberSaveable(stateSaver = saver) {
    mutableStateOf(MyState(0, ""))
}

Wanneer gebruik je welke?

Gebruik rememberSaveable voor status die de gebruiker vervelend zou vinden om bij rotatie kwijt te raken — formulierinvoer, schuifpositie of geselecteerd tabblad. Gebruik gewone remember voor tijdelijke gebruikersinterface-status die zonder problemen mag worden gereset.

Niet voor grote gegevenshoeveelheden

De opgeslagen Bundle is klein. Sla geen grote gegevens (bitmaps, lange lijsten) op in rememberSaveable. Bewaar zware gegevens in een ViewModel of repository en sla alleen kleine identificatiegegevens op.

Alles samenbrengen

Een formulierveld dat dankzij rememberSaveable behouden blijft bij het draaien van het scherm.

@Composable
fun LoginField() {
    var email by rememberSaveable { mutableStateOf("") }
    TextField(
        value = email,
        onValueChange = { email = it }
    )
}

Korte controle

Wat doet rememberSaveable wel en remember niet?

Samenvatting

rememberSaveable:

  • Blijft behouden bij het draaien van het scherm en het beëindigen van het proces, niet alleen bij recompositie.
  • Slaat primitieve waarden, String en Parcelable automatisch op.
  • Gebruik een Saver voor aangepaste typen.
  • Houd opgeslagen gegevens klein; grote hoeveelheden gegevens horen in een ViewModel.
Gratis beginnen

Leer Kotlin met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
36
Lessen
152

Veelgestelde vragen

Is de les “rememberSaveable” gratis?

Ja — je kunt hier op het web alle 3 lessen van het leerpad Android Academy, waaronder “rememberSaveable”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus Android Academy bevat in totaal 4 lessen.

Wat leer ik in “rememberSaveable”?

Behoud state bij configuratiewijzigingen. Je oefent met Android Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met Android Academy te beginnen?

Ervaring vooraf is niet nodig. Android Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 4 van 4.

Hoe lang duurt de les “rememberSaveable”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over Android Academy?

Ja. Elke les over Android Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. State met remember en mutableStateOf
  2. Recomposition uitgelegd
  3. State hoisting
  4. rememberSaveable
← Terug naar Android Academy