The onDispose https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#onDispose(kotlin.Function0)当我关闭应用程序或其进程被终止时,不会调用回调。这是有意的行为吗?此事件是否有不同的回调?我可以通过某种方式制作自己的吗MainActivity
s onStop
回调为可组合项?
我需要这种回调的原因是因为我想在用户离开屏幕或进程死亡时将用户输入的一些数据保存到数据库中。我了解到SavedStateHandle
是为这个用例而设计的,但仅适用于少量数据 - 我想保存复杂的、不可解析的数据,并且我不希望代码开销SavedStateHandle
似乎有。
我当前的解决方法是在每次更改时保存到数据库,这并不难,因为我的代码使用协程进行响应StateFlow
。我担心这会对性能产生影响,但也许我错了,这是最好的解决方案。
因强制停止/从最近的事件中被删除而被杀死?如果是,那么这是预期的行为,作曲家在以下情况下被处置viewLifecycle
is in ON_DESTROY
state.
从源头看:
override fun onStateChanged(source: LifecycleOwner, event: Lifecycle.Event) {
if (event == Lifecycle.Event.ON_DESTROY) {
dispose()
} else if (event == Lifecycle.Event.ON_CREATE) {
if (!disposed) {
setContent(lastContent)
}
}
}
If ON_DESTROY
未发送的,作曲者不会处理。ProcessLifecycle
也无济于事。
onDestroy
在这种情况下不可靠,您应该等待onStop
or onPause
, onDispose
应用于处理与视图相关的任何操作/资源。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)