Android Jetpack 撰写和查看模型生命周期

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

我刚刚开始学习 Android 中的 jetpack compose。我看到了可用于撰写的视图模型依赖项。我的问题很简单 compose 中 view model 的生命周期是什么?例如,我创建了呈现整个屏幕的可组合函数,并且我在其中传递视图模型。此视图模型是否取决于可组合项、活动或片段生命周期。这让我有点困惑,或者我走错了路。

谢谢

android android-jetpack-compose android-viewmodel
1个回答
0
投票

简而言之,

ViewModel
有自己的生命周期,其中有
onCleared()
回调,当视图模型的
LifecycleOwner
被销毁时调用。

compose中视图模型的生命周期是怎样的?
这个视图模型是否依赖于可组合性

不,因为它仅取决于其 LifecycleOwner 并且任何可组合项都不能成为 ViewModelLifecycleOwner,因此您可以将它与任何可组合项一起使用,而不必担心其周期依赖于该可组合项。

这个视图模型是依赖于activity还是fragment生命周期

实际上它取决于它的生命周期所有者,只有当所有者被销毁时才清除自己。 ActivityFragment 都可以是 ViewModelLifecycleOwner。例如:如果 ViewModel 附加到 Activity,那么当活动获得

onDestroy()
时,只有视图模型被销毁,否则视图模型可以维持的所有更改,如
onPause()
onStop()
等。

这就是为什么视图模型用于维持配置更改,您可以将它与任何 LifecycleOwner 一起使用,它将自行管理其生命周期,直到

onCleared()
被调用。有关更多信息,您可以查看文档:https://developer.android.com/topic/libraries/architecture/viewmodel

© www.soinside.com 2019 - 2024. All rights reserved.