使用PickFolderAndContinue方法恢复应用程序的问题

时间:2015-02-02 20:53:40

标签: c# windows-phone-8.1

使用PickFolderAndContinue方法后,我遇到了恢复应用程序的问题。我一直试图从this MSDN示例中取消指示。我无法弄清楚如何更改OnActivated方法以返回到我的“设置”页面(该示例仅使用包含不同内容框架的主页)。

    protected async override void OnActivated(IActivatedEventArgs e)
    {
        base.OnActivated(e);

        ContinuationManager continuationManager = new ContinuationManager();

        Frame rootFrame = CreateRootFrame();
        await RestoreStatusAsync(e.PreviousExecutionState);

        if (rootFrame.Content == null)
        {
            rootFrame.Navigate(typeof(SettingsPage));
        }

        var continuationEventArgs = e as IContinuationActivatedEventArgs;
        if (continuationEventArgs != null)
        {
            // What do i do here to return to my settings page?
            Frame scenarioFrame = SettingsPage.Current.FindName("ScenarioFrame") as Frame; 
            if (scenarioFrame != null)
            {
                // Call ContinuationManager to handle continuation activation 
                continuationManager.Continue(continuationEventArgs, scenarioFrame);
            }
        }

        Window.Current.Activate();
    }

感谢。

1 个答案:

答案 0 :(得分:0)

当你知道你总是想要去设置页面时调用你的OnActivated,你只需要这个代码:

   Frame rootFrame = CreateRootFrame();
    await RestoreStatusAsync(e.PreviousExecutionState);

    if (rootFrame.Content == null)
    {
        rootFrame.Navigate(typeof(SettingsPage));
    }

该代码创建应用程序根框架,并告诉它导航到该特定页面。

此后的代码使用ContinuationManager。这是一种设置为调用页面的机制,让它知道它是从AndContinue方法返回的。这将允许页面为该页面执行任何功能。

FilePicker还有一个ContinuationData属性,您可以在调用AndContinue方法之前设置该属性。这些数据可通过IContinuationActivatedEventArgs在OnActivated中获得。

此博客对AndContinue方法有很好的描述: http://blogs.msdn.com/b/wsdevsol/archive/2014/05/08/using-the-andcontinue-methods-in-windows-phone-silverlight-8-1-apps.aspx