Jetpack Compose Academy · Les

collectAsStateWithLifecycle

Observeer ViewModel-status veilig in Compose.

Les 4 van 413 stappen

collectAsStateWithLifecycle is een gratis Jetpack Compose Academy-les op CoddyKit. Dit is les 4 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Jetpack Compose Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Jetpack Compose Academy bevat in totaal 4 lessen.

Een Flow observeren in Compose

Je ViewModel stelt de status beschikbaar als een Flow, en je Composable moet die stroom omzetten in een waarde die Compose kan lezen en waarop het kan reageren.

De levenscyclusbewuste aanpak

Gebruik collectAsStateWithLifecycle() om een StateFlow in Compose-status te verzamelen en daarbij rekening te houden met de levenscyclus van het scherm. 🔋

val ui by vm.state.collectAsStateWithLifecycle()

Waarom niet collectAsState

Met gewoon collectAsState() blijf je verzamelen terwijl de app op de achtergrond staat, waardoor werk wordt verspild. De levenscyclusvariant pauzeert in plaats daarvan.

Stopt op de achtergrond

Wanneer je scherm stopt, stopt het verzamelen ook. Wanneer het terugkomt op de voorgrond, wordt het verzamelen hervat. Zo bespaar je batterij en voorkom je onnodige updates.

Het resultaat lezen

De aanroep geeft een State terug die je met by leest. Zo krijg je een normale waarde die recompositie activeert telkens wanneer de Flow iets uitstoot.

val ui by vm.state.collectAsStateWithLifecycle()
Text(ui.title)

De afhankelijkheid toevoegen

Deze helper bevindt zich in een runtime-artefact. Voeg lifecycle-runtime-compose toe, zodat de functie beschikbaar is in je Composables.

implementation("androidx.lifecycle:lifecycle-runtime-compose:2.8.0")

De minimale status kiezen

Standaard is het verzamelen actief vanaf ten minste STARTED. Je kunt de drempel verlagen, maar STARTED is de veilige en aanbevolen keuze.

Werkt samen met StateFlow

Dit werkt bijzonder goed met StateFlow, dat altijd een actuele waarde bevat. Daardoor heeft je scherm meteen iets om te tonen zodra het verschijnt.

Vertakken op basis van de status

Vertak na het verzamelen op basis van de UiState om laden, succes of een fout te renderen. Alles wordt aangestuurd door de meest recente emissie van je ViewModel.

if (ui.isLoading) Spinner() else Content(ui.items)

Veiliger dan handmatig verzamelen

Je hoeft niet langer zelf het verzamelen te starten en te annuleren. De helper koppelt het werk voor je aan compositie en de levenscyclus. ✨

De moderne standaard

Voor nieuwe Compose-schermen is collectAsStateWithLifecycle() de aanbevolen manier om de status van een ViewModel veilig en efficiënt te observeren.

Korte controle

Controleer waarom de levenscyclusbewuste verzamelaar de voorkeur heeft.

Samenvatting

Observeer de status van je ViewModel met collectAsStateWithLifecycle(): deze verzamelt een StateFlow in Compose-status, pauzeert op de achtergrond en is de moderne standaard.

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
30
Lessen
120

Veelgestelde vragen

Is de les “collectAsStateWithLifecycle” gratis?

Ja — de volledige tekst van “collectAsStateWithLifecycle” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Jetpack Compose Academy wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Jetpack Compose Academy bevat in totaal 4 lessen.

Wat leer ik in “collectAsStateWithLifecycle”?

Observeer ViewModel-status veilig in Compose. Je oefent met Jetpack Compose 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 Jetpack Compose Academy te beginnen?

Ervaring vooraf is niet nodig. Jetpack Compose 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 “collectAsStateWithLifecycle”?

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 Jetpack Compose Academy?

Ja. Elke les over Jetpack Compose 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. Waarom een ViewModel rotatie overleeft
  2. viewModel() in een Composable
  3. Een UiState-dataklasse modelleren
  4. collectAsStateWithLifecycle
← Terug naar Jetpack Compose Academy