【问题标题】:Back Stack in Windows Phone 8.1Windows Phone 8.1 中的返回堆栈
【发布时间】:2015-02-17 18:41:41
【问题描述】:

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

Page1 --> Page2--> Page3

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

Page3-->Page2-->Exit the app

我能够在 Page1OnNavigatedFrom() 中使用 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

【问题讨论】:

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


    【解决方案1】:

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

    在 app.xaml.Cs 的 OnLaunched 处理程序中,您可以拦截这种行为:您可以检查 e.PreviousExecutionState 在哪里可以检查,如果要处理它作为一个真正的重启

    在这种情况下,您只需转储当前 Frame 并将其替换为新 Frame,或者清除 backstack 并从新导航开始。

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

    【讨论】:

      【解决方案2】:

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

      Application.Current.Exit();
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-04-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-11-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多