Windows Phone 8.1中的后台堆栈

时间:2015-02-17 18:41:41

标签: windows-phone windows-phone-8.1 back-stack

我正在开发一个Windows Phone 8.1应用程序。我需要从

导航
Page1 --> Page2--> Page3

但是当我继续按下按钮时,我不希望 Page1 再次出现。

Page3-->Page2-->Exit the app

我能够使用 Page1 OnNavigatedFrom()中的 Frame.BackStack.Clear()来实现这一目标。但问题是,当我再次单击应用程序图标时,它仅从Page2启动,而不是从Page1。

启动
So I want to understand, why the back stack is not  cleared when we press 
back button and exit the app. And how to achieve the behavior I require

2 个答案:

答案 0 :(得分:1)

当您从第一页导航回来时,Windows Phone 8.1商店应用不会关闭。相反,他们只能暂停。所以一旦你再次开始打开它,你最终会再次运行应用程序的最后一个运行实例,包括backstack,页面状态等。

在app.xaml.Cs的 OnLaunched 处理程序中,您可以拦截此行为:您可以查看 e.PreviousExecutionState ,以便检查,如果你想把它当作真正的重启来处理。

在这种情况下,您只需转储当前帧并将其替换为新帧,或清除背板并以新导航开始。

另外:Backstack是一个列表。您可以随时删除单个条目,而不仅仅使用 RemoveAt 方法完全清除它。

答案 1 :(得分:0)

你的方法对我来说听起来不错。这是应用程序在场景后面运行。除非你编写这样的代码,否则它将继续在你保留的最后位置运行。

Application.Current.Exit();