Die Lifecycle-Bibliothek bietet integrierte APIs, mit denen Sie Jetpack einbinden können Schreiben: Zu den wichtigsten APIs gehören:
- Abläufe für den aktuellen
Lifecycle.State
. LifecycleEffects
, mit dem Sie einen Block basierend auf einem bestimmtenLifecycle.Event
.
Diese Integrationen bieten praktische Hooks zur Verwaltung von Lebenszyklen im Erstellen Sie eine Hierarchie. In diesem Dokument wird beschrieben, wie Sie sie in Ihrer App verwenden können.
Lebenszyklusstatus mit Abläufen erfassen
Der Lebenszyklus stellt eine currentStateFlow
-Eigenschaft zur Verfügung, die den aktuellen
Lifecycle.State
als StateFlow
für Kotlin. Sie können diese Flow
sammeln als
State
. So kann Ihre App Änderungen im Lebenszyklus während
Zusammensetzung.
val lifecycleOwner = LocalLifecycleOwner.current
val stateFlow = lifecycleOwner.lifecycle.currentStateFlow
…
val currentLifecycleState by stateFlow.collectAsState()
Auf das vorherige Beispiel kann über das Modul lifecycle-common
zugegriffen werden. Die
Methode currentStateAsState()
ist in lifecycle-runtime-compose
verfügbar
Modul, mit dem Sie den aktuellen Lebenszyklusstatus bequem
in einer Zeile. Das folgende Beispiel veranschaulicht dies:
val lifecycleOwner = LocalLifecycleOwner.current
val currentLifecycleState = lifecycleOwner.lifecycle.currentStateAsState()
Code für Lebenszyklusereignisse ausführen
Mit LifecycleEffects
können Sie einen Block ausführen,
Lifecycle.Event
ist aufgetreten.
LifecycleEventEffect(Lifecycle.Event.ON_START) {
// do something here
}
Zusätzlich zum LifecycleEventEffect
können Sie auch Folgendes verwenden:
LifecycleStartEffect
und LifecycleResumeEffect
. Diese APIs sind an
zu bestimmten Ereignissen. Außerdem wird eine zusätzliche Blockierung innerhalb des primären Blocks angeboten.
das hilft, Code zu bereinigen,
der durch die Veranstaltung gestartet worden sein könnte.
Lebenszyklus-Starteffekt
LifecycleStartEffect
ähnelt LifecycleEffect
, wird aber nur ausgeführt,
an Lifecycle.Event.ON_START
-Veranstaltungen. Es akzeptiert auch Schlüssel, die wie andere funktionieren
Tastatureingabe. Wenn sich der Schlüssel ändert, wird der Block noch einmal ausgeführt.
Wenn ein Lifecycle.Event.ON_STOP
-Ereignis auftritt oder der Effekt die Komposition verlässt,
wird ein onStopOrDispose
-Block ausgeführt. Dies ermöglicht das Bereinigen aller Arbeiten
das Teil des Anfangs war.
LifecycleStartEffect {
// ON_START code is executed here
onStopOrDispose {
// do any needed clean up here
}
}
LifecycleResumeEffect
Der LifecycleResumeEffect
funktioniert auf die gleiche Weise wie der
LifecycleStartedEffect
, wird jedoch auf dem Lifecycle.Event.ON_RESUME
ausgeführt
. Außerdem stellt er einen onPauseOrDispose
-Block zur Verfügung, der den
zu bereinigen.
LifecycleResumeEffect {
// ON_RESUME code is executed here
onPauseOrDispose {
// do any needed clean up here
}
}