1

我的 Windows Phone XNA 游戏调用 Guide.BeginShowKeyboardInput 来获取用户名。在显示指南的输入屏幕时,如果用户按下 Home 或 Search(硬件)按钮,游戏将照常停用 - 但如果用户随后按下 Back(硬件)按钮,游戏应该会继续,但不会. 相反,它会显示“正在恢复...”消息,直到 Windows Phone 放弃尝试恢复游戏并终止进程。

请注意:

  1. 由于这个问题,我的应用程序未能通过 Microsoft 认证 - 我真的需要修复它!
  2. 这仅在显示指南输入屏幕时发生在我的游戏中 - 如果未显示,则游戏在停用后可以正常恢复。
  3. 仅当游戏在 WP7.x 上运行时才会出现此问题(在 WP7.5 和 WP7.8 上已验证问题) - 尽管游戏似乎在 WP8 设备上正常恢复。
  4. 我创建了一个名为 Guide.BeginShowKeyboardInput 的空白 XNA 游戏项目,并使用 WP7.x 设备对其进行了测试,并且没有出现这种问题行为。
  5. 我在没有启用音乐和我的试用许可证管理器(他们使用计时器)的情况下测试了游戏,它仍然这样做。
  6. 模拟器中发生完全相同的行为(WP7.x 模拟器上的恢复失败,在 WP8 模拟器上工作正常)
  7. 我在加载屏幕期间使用线程异步下载内容 - 但它们已经完成并退出。我不相信其他线程正在运行,尽管这似乎是一个线程阻塞问题。

关于在 Guide.IsVisible 或如何调试/解决此问题时可能阻止游戏恢复的任何其他想法?

4

2 回答 2

1

这个问题的解决方案是在处理任何传递应用程序外部控制的操作时不使用 SuppressDraw,例如启动器、选择器和指南。

于 2013-07-08T13:44:08.713 回答
0

您是否尝试在停用或关闭事件中调用“Guide.EndShowKeyboardInput”?

因此,在应用程序暂停之前关闭指南,您确实有 10 秒的暂停时间,因此这可能值得研究。如果您希望指南在恢复时重新显示,那么在您的状态保存代码中只需设置一个标志并打开指南(如果已设置)。

于 2013-06-04T15:30:40.950 回答