首页 > 解决方案 > MVVMCross 6.4.3 还原未按预期工作

问题描述

我有一个视图 (A),我可以从中导航到另一个视图 (B)

如果我在查看视图 B 时墓碑应用程序

当我恢复它时,我看到以下内容被调用

只有当我关闭视图 B 时,我才会看到以下内容

我本来希望在恢复时看到视图 A 的生命周期事件,然后是视图 B 的生命周期事件。这是因为我认为完整的层次结构是在恢复完成之前构建的。

我错了,还是我在这里遗漏了什么?

有人可以确认预期的行为。

标签: androidmvvmcrosstombstoning

解决方案


不,当您在视图 B 上然后关闭视图 B 时,您看不到所有这些调用的函数:

  • 视图 A - 构造函数
  • 视图 A - 从 Bundle 重新加载
  • 视图 A - 准备
  • 视图 A - 初始化

您需要了解为什么每个都被调用。仅当创建该 ViewModel 的新实例时才调用构造函数。关闭 B 不会创建新实例。您必须关闭视图 A,同时确保所有内容都已处理,然后重新打开它。

同样,其他生命周期函数也有其用途。您可能想要使用 Did Appear 覆盖。

要验证这一点,您还可以创建一个简单的示例并添加日志记录。


推荐阅读