1.只需把在backstack中的全部历史数据清除
while (NavigationService.BackStack.Any())
{
NavigationService.RemoveBackEntry();
}
NavigationService.GoBack();
2.通过NavigationMode 可以判断当前是创建新页面,还是从BackStack返回一个页面
protected override void OnNavigatingFrom(NavigatingCancelEventArgs e)
{
if (e.IsCancelable && e.NavigationMode == NavigationMode.New)
{
e.Cancel = true;
}
base.OnNavigatingFrom(e);
}
3.程序恢复时会触发Application类中的Activated 事件,我们可以通过检查IsApplicationInstancePreserved参数来判断程序是从休眠状态(应用常驻内存,不需要应用自己保存和恢复数据,)还是墓碑状态(需要应用自己保存和恢复状态数据)返回的
public static bool IsTombstoning { get; set; }
private void Application_Activated(object sender, ActivatedEventArgs e)
{
if (e.IsApplicationInstancePreserved)
{
IsTombstoning = false;
}
else
{
IsTombstoning = true;
}
}