0

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

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

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

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

4

1 回答 1

0

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

接下来进入“App”类中的 App.xaml.cs 添加:private bool reset 然后您应该有一个用于初始化 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;
}

如果您正确实施此操作,您的应用程序应该从您所在的最后一页恢复。

于 2013-03-17T03:50:05.617 回答