【问题标题】:How ViewModel is not get destroyed when activity is rotated旋转活动时如何不破坏 ViewModel
【发布时间】:2019-11-23 05:35:50
【问题描述】:

我很想知道当 Activity 旋转时 ViewModel 是如何存活的,因为它会被销毁并重新创建。从逻辑上讲,如果我们看到,如果负责创建 ViewModel 的活动被破坏,那么 ViewModel 就会被破坏。当我们旋转设备时,Activity 正在破坏。

ViewModel 怎么知道 Activity 已经完全结束,这样我就可以毁灭自己了?因为onDestroy在设备旋转时也会被调用多次,那么ViewModel的onCleared方法是如何在activity完全销毁时触发的呢?

【问题讨论】:

    标签: android mvvm viewmodel android-viewmodel


    【解决方案1】:

    ViewModel 具有生命周期感知能力,这意味着当您创建视图模型时,您会将 LifecycleOwner 传递给 VM。这有助于视图模型获取上下文的状态(活动、片段等)。 这允许视图模型仅在状态处于活动状态时将更改广播给其观察者。

    请参阅以下链接以获得更清晰的信息

    https://developer.android.com/topic/libraries/architecture/lifecycle#lco https://codelabs.developers.google.com/codelabs/android-lifecycles/#4

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-29
      • 2022-08-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-29
      • 1970-01-01
      • 2013-12-22
      相关资源
      最近更新 更多