Чтобы обеспечить правильное поведение кнопки обратной связи моего приложения для Android, использующего MvvmCross, мне пришлось внести поправки в конкретных просмотров в SingleTask
. Хотя это прекрасно работает, когда один из этих представлений используется во второй раз, конструкторы ViewModel и Init (используемые в сочетании с классом Nav
для передачи параметров из одного представления в другой), очевидно, больше не запускаются. Я предполагаю, что это поведение «по дизайну» или «соблюдение ОС Android», о котором вам просто нужно знать при размещении кода в конструкторах/методах Init, которые могут потребоваться каждый раз, когда отображается представление (например, RefreshJobList). Мой фикс кстати, поместить вызов требуемого метода в OnResume
способе деятельности, например .:Активность Android LaunchMode SingleTask не запускает конструктор MvvmCross ViewModel или метод Init
((JobDetailViewModel)this.ViewModel).RefreshJobPhotos();
Есть ли «лучший способ»?
Спасибо Стюарт. Использование SingleTask было единственным способом создать правильное поведение кнопки «Назад», но это не делает навигацию приложения незнакомой. Это просто типичный экран списка с записью добавления/обновления/удаления, в котором отображается подробный экран. Поэтому всякий раз, когда вы находитесь на подробном экране, 2 нажатия кнопки «Назад» закрывают приложение, а не возвращают все экземпляры экранов списка и подробностей. – Graham