如果用户重新启动应用程序,如何恢复状态?

时间:2013-03-16 05:28:19

标签: c# windows-phone-8 windows-phone-7.1 windows-phone

现在我有一个带有几页的应用程序,用户使用ListPicker选择某些值,这些值保存在公共字符串变量中。当用户到达最后一页时,几个文本块控件读取字符串变量并显示字符串。除此之外,还显示一个计时器,当用户到达最后一页时,计时器开始计时。

现在,如果用户通过按主页按钮离开应用程序,然后使用应用程序切换器返回到它,最后一页显示顺利,所有文本块显示其变量,计时器尚未停止。但是,如果用户从主屏幕重新启动应用程序而不是切换到该应用程序,则所有变量都将丢失,应用程序将从第一页开始。

我想要做的是保存字符串变量和计时器,并让应用程序在启动时加载变量,如果!= null。如果它们存在,并且应用程序能够加载它们,请导航到最后一页并显示它们。否则,如果没有要加载的变量,只需继续正常操作。

我该怎么做呢?我已经读过关于孤立存储和保存状态的信息,但老实说,还没有完成任何事情,这真的让我发疯。 任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

您应该实施快速应用简历。 首先,您需要在WMAppManifest.xml中设置ActivationPolicy =“Resume”

接着 进入App.xaml.cs中的“App”类添加:     私人布尔重置 然后,您应该有一个初始化RootFrame的InitializePhoneApplication方法。加上这个:

RootFrame.Navigating += RootFrame_Navigating;
RootFrame.Navigated += RootFrame_Navigated;

然后你可以去添加这些方法:

void RootFrame_Navigating(object sender, NavigatingCancelEventArgs e)
{
        if (reset && e.IsCancelable && e.Uri.OriginalString == "/MainPage.xaml")
    {
        e.Cancel = true;
        reset = false;
    }
}

void RootFrame_Navigated(object sender, NavigationEventArgs e)
{
    reset = e.NavigationMode == NavigationMode.Reset;
}

如果您正确实施此功能,您的应用应该从您所在的最后一页继续。