Fill the blank
Complete the cleanup so the observer doesn't leak.
@Composable
fun TrackResume(onResume: () -> Unit) {
val owner = LocalLifecycleOwner.current
DisposableEffect(owner) {
val observer = LifecycleEventObserver { _, e -> if (e == Lifecycle.Event.ON_RESUME) onResume() }
owner.lifecycle.addObserver(observer)
____ { owner.lifecycle.removeObserver(observer) }
}
}Hint 1 of 1
What must the DisposableEffect block return?
Choose an answer, then open Show answer below to check it.
Show answer
Answer: A onDispose
Correct. onDispose runs when the effect leaves composition or its key changes.
Why not the others?
- B finally. This isn't a try block; DisposableEffect must return onDispose.
- C awaitClose. awaitClose belongs to callbackFlow.
- D SideEffect. SideEffect runs after every successful recomposition, not on disposal.