Slackbot
04/01/2021, 12:27 PMAndré Kindwall
04/01/2021, 1:20 PMclass MainActivity : ComponentActivity() {
private var isStarted by mutableStateOf(true)
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
CompositionLocalProvider(LocalIsActivityStarted provides isStarted) {
MyApp()
}
}
}
override fun onStart() {
super.onStart()
isStarted = true
}
override fun onStop() {
super.onStop()
isStarted = false
}
}
val LocalIsActivityStarted = compositionLocalOf<Boolean> { error("CompositionLocal LocalIsActivityStarted not present") }
André Kindwall
04/01/2021, 1:27 PMZach Klippenstein (he/him) [MOD]
04/01/2021, 3:37 PMLocalLifecycleOwner
and then just observe lifecycle changes from that, eg in a LaunchedEffect
.Abdalla Hassanin
04/01/2021, 4:54 PMZach Klippenstein (he/him) [MOD]
04/01/2021, 5:38 PMAndré Kindwall
04/01/2021, 9:04 PMval lifecycleOwner = LocalLifecycleOwner.current
var isInForeground by remember { mutableStateOf(lifecycleOwner.lifecycle.currentState == Lifecycle.State.RESUMED) }
DisposableEffect(lifecycleOwner) {
val observer = object : DefaultLifecycleObserver {
override fun onResume(owner: LifecycleOwner) {
isInForeground = true
}
override fun onPause(owner: LifecycleOwner) {
isInForeground = false
}
}
lifecycleOwner.lifecycle.addObserver(observer)
onDispose { lifecycleOwner.lifecycle.removeObserver(observer) }
}
nglauber
06/30/2021, 3:59 PM