alorma
10/25/2021, 3:00 PMonStart
events in compose?
Code in đ§ľalorma
10/25/2021, 3:03 PM@Composable
fun MyComposable(
myViewModel: MyViewModel = getViewModel(),
) {
DisposableEffect("") {
val observer = LifecycleEventObserver { _, event ->
alertsViewModel.onLifecycleEvent(event)
}
lifecycle.addObserver(observer)
onDispose { lifecycle.removeObserver(observer) }
}
...
}
class MyViewModel: ViewModel() {
fun onLifecycleEvent(event: Lifecycle.Event) {
when (event) {
Lifecycle.Event.ON_START -> {
// track "screen"
}
}
}
}
mattinger
10/25/2021, 3:16 PMalorma
10/25/2021, 3:18 PMmattinger
10/25/2021, 3:19 PM@Composable
fun MyComposable(
onStart: () -> Unit,
onStop: () -> Unit
) {
DisposableEffect {
onStart()
onDispose { onStop() }
}
}
alorma
10/25/2021, 3:19 PMDisposableEffect
is more like.. onCreate()
?mattinger
10/25/2021, 3:20 PMalorma
10/25/2021, 3:20 PMalorma
10/25/2021, 3:20 PMonStart()
mattinger
10/25/2021, 3:20 PMA side effect of composition that must run for any new unique value of key1 and must be reversed or cleaned up if key1 changes or if the DisposableEffect leaves the composition.
mattinger
10/25/2021, 3:21 PMAlbert Chang
10/25/2021, 3:21 PMmattinger
10/25/2021, 3:21 PMmattinger
10/25/2021, 3:23 PMmattinger
10/25/2021, 3:23 PMmattinger
10/25/2021, 3:24 PMmattinger
10/25/2021, 3:26 PMIan Lake
10/25/2021, 4:28 PMIan Lake
10/25/2021, 4:30 PM