我很想知道 Activity旋转后ViewModel如何生存,因为它已销毁并重新创建。从逻辑上看,如果负责创建ViewModel的活动被销毁,则ViewModel被销毁。而且,当我们旋转设备时,活动就被破坏了。
ViewModel如何知道Activity已完全完成,以便我可以销毁自己?由于设备旋转时也会多次调用onDestroy,所以当活动完全销毁时,ViewModel的onCleared方法如何触发?
答案 0 :(得分:0)
ViewModels具有生命周期意识,这意味着在创建视图模型时,会将LifecycleOwner
传递给VM。这有助于视图模型获取上下文的状态(活动,片段等)。
这允许视图模型仅在状态为活动状态时才将更改广播给其观察者。
有关更多信息,请参见以下链接
https://developer.android.com/topic/libraries/architecture/lifecycle#lco https://codelabs.developers.google.com/codelabs/android-lifecycles/#4