ankur2037
07/26/2023, 1:43 PM@Composable
fun MyLifecycleComposable() {
val lifecycleOwner = rememberUpdatedState(LocalLifecycleOwner.current)
val coroutineScope = rememberCoroutineScope()
DisposableEffect(key1 = true) {
val observer = LifecycleEventObserver { _, event ->
when (event) {
Lifecycle.Event.ON_STOP -> {
coroutineScope.launch {
// perform some action
}
}
Lifecycle.Event.ON_START -> {
coroutineScope.launch {
// perform some action
}
}
else -> Unit
}
}
val lifecycle = lifecycleOwner.value.lifecycle
lifecycle.addObserver(observer)
onDispose {
coroutineScope.cancel()
lifecycle.removeObserver(observer)
}
}
}
Dima Avdeev
07/26/2023, 2:31 PMLaunchedEffect(Unit) {
// Here are passed a CoroutineScope as this context
launch {
// Here you can call suspend functions
delay(100)
}
}
Dima Avdeev
07/26/2023, 2:34 PM@Composable
fun MyView(externalStateFlow: StateFlow<String>) {
val state = externalStateFlow.collectAsState()
Text(state.value)
}
ankur2037
07/26/2023, 3:35 PMinterface DataSource {
suspend fun open(): Boolean
suspend fun close(): Boolean
}
Vlad
07/26/2023, 3:39 PMDima Avdeev
07/26/2023, 3:43 PMval dataSource: DataSource // get somewhere or put as an argument
val coroutineScope: CoroutineScope = rememberCoroutineScope()
DisposableEffect(dataSource) {
coroutineScope.launch {
dataSource.open()
}
onDispose {
dataSource.close()
}
}
Vlad
07/26/2023, 3:43 PMDima Avdeev
07/26/2023, 3:44 PMVlad
07/26/2023, 3:44 PMDima Avdeev
07/26/2023, 3:44 PMVlad
07/26/2023, 3:44 PMDima Avdeev
07/26/2023, 3:45 PMArkadii Ivanov
07/26/2023, 3:45 PMDima Avdeev
07/26/2023, 3:45 PMVlad
07/26/2023, 3:46 PMVlad
07/26/2023, 3:46 PMArkadii Ivanov
07/26/2023, 3:48 PMVlad
07/26/2023, 3:53 PMArkadii Ivanov
07/26/2023, 3:57 PMArkadii Ivanov
07/26/2023, 3:57 PMLandry Norris
07/26/2023, 4:21 PMPablichjenkov
07/27/2023, 12:24 AMankur2037
07/27/2023, 5:39 AMArkadii Ivanov
07/27/2023, 6:35 AMVlad
07/27/2023, 9:11 AMArkadii Ivanov
07/27/2023, 10:22 AMVlad
07/27/2023, 10:23 AMArkadii Ivanov
07/27/2023, 10:28 AMArkadii Ivanov
07/27/2023, 10:28 AMVlad
07/27/2023, 10:33 AMPablichjenkov
07/27/2023, 1:55 PMPablichjenkov
07/27/2023, 1:58 PMankur2037
11/08/2023, 10:25 AMVlad
11/08/2023, 10:27 AMVlad
11/08/2023, 10:27 AMPablichjenkov
11/08/2023, 12:44 PM