Чаще всего при написании вашего приложения Xamarin с Prism у вас будет что-то вроде:
protected override void OnInitialized()
{
NavigationService.NavigateAsync("SomePage");
}
OnInitialized вызывается каждый раз, когда вызывается ctor приложения. Это важное соображение здесь, потому что это означает, что всякий раз, когда собственная платформа захламляет приложение в фоновом режиме или иным образом обновляет приложение, вызывая OnCreate в вашем MainActivity или FinishedLaunching в вашем AppDelegate, тогда OnInitialized будет вызывать сброс стека навигации вашего приложения в SomePage
.
Однако вы можете переопределить OnStart / OnResume в PrismApplication и использовать любые бизнес-логи c, которые вам нужны, чтобы определить, куда перемещаться и как вы можете восстановить приложение.
public override void OnStart()
{
NavigationService.NavigateAsync("MainPage");
}
public override void OnResume()
{
if(someCondition)
{
NavigationService.NavigateAsync("SomePage");
}
else
{
NavigationService.NavigateAsync("AnotherPage");
}
}