如何在 Compose Multiplatform 中使用 Lifecycle?

问题描述 投票:0回答:1

最近,生命周期库已更新,因此应该可以在 Compose Multiplatform 中使用它。

问题是我无法让它工作。我尝试添加生命周期观察者,但是当我尝试调试时,我没有从 oncreateonresume 等事件获取日志。

有人设法让它发挥作用吗?

LifecycleEventObserver { source, event ->
    when(event) {
        Lifecycle.Event.ON_RESUME -> {
            println("Hello from onresume")
        }
        else -> { println("Hello from ${event.name}")}
    }
}
android-jetpack-compose android-lifecycle compose-multiplatform compose-desktop jetbrains-compose
1个回答
0
投票

我按照文档中的描述执行了以下操作,它在桌面上按预期工作。

添加了这些依赖项:

implementation("org.jetbrains.androidx.lifecycle:lifecycle-common:2.8.1") // To make coroutines and flows in lifecycles work correctly on desktop: implementation("org.jetbrains.kotlinx:kotlinx-coroutines-swing:1.8.1")
然后在我的

@Composable

函数中:

val observer = remember { LifecycleEventObserver { source, event -> when (event) { Lifecycle.Event.ON_RESUME -> { println("Resumed") } else -> { println(event.name) } } } } LocalLifecycleOwner.current.lifecycle.addObserver(observer)
    
© www.soinside.com 2019 - 2024. All rights reserved.