Восстановление MVVMCross 6.4.3 не работает должным образом

У меня есть представление (A), из которого я могу перейти к другому представлению (B)

Если я забью приложение, когда просматриваю представление B

Когда я восстанавливаю его, я вижу, что вызывается следующее

  • Вид B - Конструктор
  • Вид B — Перезагрузить из пакета
  • Вид B - Подготовка
  • Вид B — Инициализировать

Только когда я закрываю View B, я вижу следующее

  • Вид А — Конструктор
  • Вид A — перезагрузка из пакета
  • Вид А - Подготовка
  • Вид А — Инициализировать

Я ожидал, что при восстановлении я увижу события жизненного цикла для представления A, за которыми следуют события жизненного цикла для представления B. Это связано с тем, что я думал, что полная иерархия создается до завершения восстановления.

Я ошибаюсь, или я что-то упускаю здесь?

Может ли кто-нибудь подтвердить ожидаемое поведение.


person rideintothesun    schedule 03.12.2020    source источник


Ответы (1)


Нет, когда вы находитесь в представлении B, а затем закрываете представление B, вы не видите всех этих вызываемых функций:

  • Вид А — Конструктор
  • Вид A — перезагрузка из пакета
  • Вид А - Подготовка
  • Вид А — Инициализировать

Вы должны понять, почему каждый из них называется. Конструктор вызывается ТОЛЬКО при создании нового экземпляра этой ViewModel. Закрытие B не создает новый экземпляр. Вам нужно будет закрыть представление A, убедившись, что все удалено, а затем снова открыть его.

Точно так же другие функции жизненного цикла также имеют цель. Возможно, вы захотите использовать переопределения Did Appear.

Чтобы убедиться в этом, вы также можете просто создать простой образец и добавить ведение журнала.

person Saamer    schedule 29.12.2020