@Composable fun LifecycleAwareComposable(modifier: Modifier = Modifier) { val lifecycleOwner = LocalLifecycleOwner.current DisposableEffect(key1 = lifecycleOwner) { val lifecycleEvents = LifecycleEventObserver { source, event -> when (event) { Lifecycle.Event.ON_CREATE -> Napier.d { "LifecycleAareComposable event: ${event.name} and source: ${source.lifecycle.currentState}" } Lifecycle.Event.ON_START -> Napier.d { "LifecycleAareComposable event: ${event.name} and source: ${source.lifecycle.currentState}" } Lifecycle.Event.ON_RESUME -> Napier.d { "LifecycleAareComposable event: ${event.name} and source: ${source.lifecycle.currentState}" } Lifecycle.Event.ON_PAUSE -> Napier.d { "LifecycleAareComposable event: ${event.name} and source: ${source.lifecycle.currentState}" } Lifecycle.Event.ON_STOP -> Napier.d { "LifecycleAareComposable event: ${event.name} and source: ${source.lifecycle.currentState}" } Lifecycle.Event.ON_DESTROY -> Napier.d { "LifecycleAareComposable event: ${event.name} and source: ${source.lifecycle.currentState}" } Lifecycle.Event.ON_ANY -> Napier.d { "LifecycleAareComposable event: ${event.name} and source: ${source.lifecycle.currentState}" } } } lifecycleOwner.lifecycle.addObserver(observer = lifecycleEvents) onDispose { lifecycleOwner.lifecycle.removeObserver(observer = lifecycleEvents) } } Box(modifier = modifier.fillMaxSize()) { // Just for demo } }