我正在开发一个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
答案 0 :(得分:1)
当您从第一页导航回来时,Windows Phone 8.1商店应用不会关闭。相反,他们只能暂停。所以一旦你再次开始打开它,你最终会再次运行应用程序的最后一个运行实例,包括backstack,页面状态等。
在app.xaml.Cs的 OnLaunched 处理程序中,您可以拦截此行为:您可以查看 e.PreviousExecutionState ,以便检查,如果你想把它当作真正的重启来处理。
在这种情况下,您只需转储当前帧并将其替换为新帧,或清除背板并以新导航开始。
另外:Backstack是一个列表。您可以随时删除单个条目,而不仅仅使用 RemoveAt 方法完全清除它。
答案 1 :(得分:0)
你的方法对我来说听起来不错。这是应用程序在场景后面运行。除非你编写这样的代码,否则它将继续在你保留的最后位置运行。
Application.Current.Exit();