我正在使用Windows 10 UWP应用,而我正在使用Template10 library。在我的应用程序主页面的视图模型中,我有这个代码来尝试处理暂停和恢复:
public override void OnNavigatedTo(object parameter, NavigationMode mode, IDictionary<string, object> state)
{
if (state.Any())
{
NumberOfQuizQuestions = (int)state["QuizQuestions"];
state.Clear();
}
}
public override Task OnNavigatedFromAsync(IDictionary<string, object> state, bool suspending)
{
if (suspending)
{
state["QuizQuestions"] = this.NumberOfQuizQuestions;
}
return base.OnNavigatedFromAsync(state, suspending);
}
我的问题是:如何测试这是否正常?当我在调试器中启动应用程序时,我显示了生命周期工具栏,因此当我单击“暂停并关闭”OnNavigatedFromAsync()
运行中的代码并且suspending
为真时,这似乎是正确的。但无论我如何尝试启动该应用,state
中OnNavigatedTo()
都为空。这是预期的吗?
答案 0 :(得分:4)
我在Windows 10 PC上快速可靠地测试/调试恢复方案的方式如下:
在步骤3中启动调试会话时,Visual Studio将首先编译和部署您的应用程序。当然,由于应用程序正在运行,它必须先挂起然后终止。
然后再次启动应用程序,并附加调试器,并且先前的执行状态为“已终止”。放置断点并进行调试。
答案 1 :(得分:0)
您可以将应用程序部署到Windows 10移动模拟器或实际设备。然后你可以运行应用程序,转到你的启动屏幕并在一段时间后返回它以触发不同的状态。这不会破坏您的调试会话。
答案 2 :(得分:0)
谢谢大家。问题在于Template10使用磁贴的ID来确定启动是来自主要还是次要磁贴 - 如果磁贴的名称是&#34;应用&#34;,它是&#34; s主要的瓷砖。在这种情况下,我使用的是Windows Phone 8.0中的升级项目,由于某种原因,我的Package.appxmanifest有一个Application标签,其ID不是&#34; App&#34;。