恢复MvxCachingFragmentCompatActivity时的MvvmCross和Android生命周期顺序

时间:2017-03-08 17:52:08

标签: android-activity save mvvmcross android-lifecycle restore

我正在测试应用中每个视图的恢复。我这样做是通过允许更改方向来销毁我的MvxCachingFragmentCompatActivity然后重新创建它。

当活动被破坏时,我的片段也被破坏了。在这一点上,我整理了我的视图模型,以确保它是免费的,不会导致内存泄漏。

然而,当遇到OnCreate时,我遇到了一个问题。它似乎做了两件事

  1. 从MvxFragmentExtensions OnCreate方法获取视图模型 调用视图模型缓存
  2. 然后调用RestoreViewModelsFromBundle
  3. 问题是调用MvxFragmentExtensions OnCreate(1)调用视图模型缓存并返回一个尚未启动的视图模型,例如调用它的Start(),但这用于设置DataContext。

    在调用RestoreViewModelsFromBundle(2)之后,虽然DataContext已经通过构造函数 - >初始化 - >恢复状态 - >开始设置,但不会再次设置事件。所以我现在有一个视图模型设置不正确,所以我的视图不起作用。

    当我拿出我的代码来整理视图模型时,由于(1)设置的缓存视图模型现在具有正确的数据,因此我得到了更多。但我遇到了其他问题,因为它试图创建一个新的视图模型,因为调用了RestoreViewModelsFromBundle(2)。

    我似乎有两个正在尝试恢复的视图实例,其中一个没有绑定到它的视图模型

    我真正想要的是将(2)中完成的恢复视图模型绑定到我的视图。无论如何都要这样做

    MvvmCross团队的成员是否可以帮助了解一些有关此处发生的事情以及原因的信息?我一直在研究MvxCachingFragmentCompatActivity如何工作近2周。这对我来说是个主要问题。我真的需要团队成员的帮助,他们编写或熟悉MvxCachingFragmentCompatActivity类

0 个答案:

没有答案