MvvmCross View Model Lifecycle Restore无法正常工作

时间:2018-03-16 14:08:02

标签: xamarin.android mvvmcross android-lifecycle

我有一个简单的 MvvmCross 5.6.3 应用,我尝试从View A导航到View BViews' Fragments MvxAppCompatActivity投放。

目前我仍在使用ShowViewModel进行导航。

View B

导航到

View A后似乎加载正常

  1. ctor名为
  2. OnCreate名为
  3. ViewModel构建,初始化并启动
  4. OnViewCreated已调用并ViewModel设置
  5. 但是,方向的改变会导致以下情况发生:

    1. ViewModel's SavedState致电
    2. ctor名为
    3. OnCreate名为
    4. OnViewCreated名为
    5. View B's ViewModel已设置,但由于ctor未被调用,我不知道如何设置。 <{1}},Init()ReloadState()未被调用。

      Start()View B的{​​{1}}设置为 false

      所以我希望构建一个全新的IsCachableFragmentMvxFragmentPresentationAttribute,并View来完成标准生命周期。 有谁知道为什么这似乎不起作用?

      MvvmCross 5.0以后是否支持使用ViewModel(即4.x机制)?我不是指混合两者,我的意思是仅使用ViewModel ShowViewModel)。

2 个答案:

答案 0 :(得分:0)

AFAIK ViewModel中的Mvx方向更改不会影响ViewModel,即它不会再次运行生命周期。

ViewModel's ReloadState是指在您的应用在墓碑形成后恢复生机时调用。

因此,在方向更改后,您将ViewModel置于更改之前的状态(除非在方向更改的中间发生墓碑化,这是非常罕见的)。你为什么要在改变方向时有一个全新的{your-db-prefix}_options

答案 1 :(得分:0)

我已在此处Solution发布了我的问题解决方案。但是,必须有更好的方法来做到这一点,这就是后续行动的重点。