首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在应用从Tombstone恢复时阻止导航?

如何在应用从Tombstone恢复时阻止导航?
EN

Stack Overflow用户
提问于 2012-03-27 07:30:08
回答 2查看 896关注 0票数 2

我有一个应用程序,当应用程序被逻辑删除时,我想在主屏幕上重新启动应用程序,使其处于“新”状态。

但是在默认情况下,wp7框架想要导航回您离开的页面。

如何停止这种行为?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-27 15:41:12

嗯,这就是我想出来的,就像Shahar所说的,它很粗糙(但确实有效):

在App.xaml.cs中

代码语言:javascript
复制
    bool hasLaunched;

    private void Application_Launching(object sender, LaunchingEventArgs e)
    {
        hasLaunched = true;
    }

    private void Application_Activated(object sender, ActivatedEventArgs e)
    {
        if (!hasLaunched) // recovering from a tombstone
            GlobalNavigationService.ToMainPage();
        hasLaunched = true;
    }

在GlobalNavigationService类中:

代码语言:javascript
复制
    public static async void ToMainPage()
    {
        //CurrentFrame.StopLoading();
        await Observable.FromEventPattern<NavigationEventArgs>(CurrentFrame, "Navigated").Take(1).ToTask();

        SafelyNavigateTo("/ZuneSlotMachine;component/Views/Main/MainPage.xaml");

        await Observable.FromEventPattern<NavigationEventArgs>(CurrentFrame, "Navigated").Take(1).ToTask();

        while (CurrentFrame.BackStack.Count() > 0)
            CurrentFrame.RemoveBackEntry();
    }

基本上,它等待第一次导航发生,即使通过调用CurrentFrame.StopLoading()似乎也不能取消。在第一个导航之后,它导航到了我的起始页面。在nav完成之后,它会从后台堆栈中删除所有条目。

它可以工作,但从tombstone返回时会有明显的延迟(1 -2秒)。

票数 2
EN

Stack Overflow用户

发布于 2012-03-27 10:55:14

你不能真的用一些很大的hack来做到这一点。这是我个人唯一能想到的方法--也许还有其他的方法。

  1. 从tombstone返回时,您将收到一个ApplicationActivated事件。存储一些记住这一点的变量。另外,重置你的全局状态。
  2. 使用NavigationService.RemoveBackEntry直到你到达你的第一个页面。
  3. 如果你能“重置”主页的状态,就这么做。否则,在OnNavigateTo中的MainPage中,如果为记住刚回来而设置的静态变量为真,则使用NavigationService.Navigate()方法再次转到应用程序的第一页。现在,您的堆栈中有两个“第一”页。第一个是“脏的”,第二个是“新的”。
  4. 重置了全局变量,该变量告诉你刚刚从停用中返回,但有第二个全局变量,它告诉你在按下“上一步”时应用程序崩溃。
  5. 挂钩BackKey事件并终止应用程序(抛出一些异常)。

我强烈建议你重新考虑你的应用流程--这是一个相当糟糕的魔力。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9881365

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档