我最近提交了一个处理Silverlight框架的小应用程序。 但是由于错误5.2.3,我的应用程序被市场拒绝,即被停用后的应用程序响应。 我发现的是: 用户成功完成游戏(一个谜题)后,我正在向他展示一个对话框:
MessageBoxResult mr = MessageBox.Show("You have won! Do you want to start another game?", "Information", MessageBoxButton.OKCancel);
if(mr==MessageBoxResult.Cancel)
{
NavigationService.GoBack();
}
现在重点是 - 如果用户在显示此对话框后按下开始按钮,应用程序将停止抛出异常 -
当任务不在前台时,不允许导航。错误:-2147220990
在我看来这是一个有效的错误,虽然我不确定我的其他应用程序如何成功通过认证过程,尽管他们有相同的缺陷。我刚开始开发WP应用程序,所以我对要做的事情知之甚少。请你帮我解决一下。
答案 0 :(得分:2)
这种情况看起来并不容易。看起来MessageBox
在Deactivated
事件被触发之前被取消,所以我无法看到测试这种状态。
我的建议是检测并吞下特定的例外:
MessageBoxResult mr = MessageBox.Show("You have won! Do you want to start another game?", "Information", MessageBoxButton.OKCancel);
if (mr == MessageBoxResult.Cancel)
{
try
{
NavigationService.GoBack();
}
catch (InvalidOperationException e)
{
// occurs if message box closed due to de-activation
}
}