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

C# 如果用户重新启动应用程序,如何恢复状态?,c#,windows-phone-8,windows-phone-7.1,windows-phone,C#,Windows Phone 8,Windows Phone 7.1,Windows Phone,现在我有一个应用程序,它有两个页面,用户使用ListPicker选择某些值,这些值保存到公共字符串变量中。当用户到达最后一页时,几个textblock控件读取字符串变量并显示字符串。除此之外,还会显示一个计时器,当用户到达最后一页时开始计数 现在,如果用户通过按下home按钮离开应用程序,然后使用应用程序切换器返回应用程序,则最后一页会毫无障碍地显示出来,所有文本块都会显示其变量,并且计时器没有停止。但是,如果用户从主屏幕重新启动应用程序而不是切换到主屏幕,则所有变量都将丢失,应用程序将在第一页

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

现在,如果用户通过按下home按钮离开应用程序,然后使用应用程序切换器返回应用程序,则最后一页会毫无障碍地显示出来,所有文本块都会显示其变量,并且计时器没有停止。但是,如果用户从主屏幕重新启动应用程序而不是切换到主屏幕,则所有变量都将丢失,应用程序将在第一页启动

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

我该怎么做呢?我读过关于隔离存储和保存状态的文章,但老实说,我什么都没做,这真的让我发疯。
任何帮助都将不胜感激。

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

下一个 进入“App”类中的App.xaml.cs添加: 私有布尔重置 然后应该有一个初始化根框架的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;
}

如果您正确地实现了这一点,您的应用程序应该从上一页继续运行。

应用程序的目标是7.1还是8.0?