我在 Windows Phone 7/8 应用程序的应用程序关闭/停用方法中显示了一个 MessageBox。它用于警告用户活动计时器因应用程序正在关闭而被禁用。应用程序关闭/停用事件非常适合此目的,因为将逻辑放入所有应用程序页面中将是一个杀手 - 太多的页面和路径用于导航。这工作得很好 - 消息框在 WP7 中显示“OK”。
我也知道对于WP8 API 的重大变化 http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj206947%28v=vs.105%29.aspx#BKMK_BreakingchangesinWindowsPhone8。其中明确指出Activated和Launching中的MessageBox.Show会导致异常。
问题是在 WP8 中,消息框在应用程序关闭时不会显示。代码执行无异常,但没有任何消息出现。
附:我在 MS WP Dev 论坛上问过这个问题,但显然没有人知道。
将 msgBox 代码从应用程序关闭事件移至主页代码隐藏中。覆盖后退按键事件并将代码放在那里。这是在 7.x 上的实现方式:
protected override void OnBackKeyPress(System.ComponentModel.CancelEventArgs e)
{
if (MessageBox.Show("Do you want to exit XXXXX?", "Application Closing", MessageBoxButton.OKCancel) == MessageBoxResult.Cancel)
{
// Cancel default navigation
e.Cancel = true;
}
}
仅供参考 - 在 WP8 上,您似乎必须将 MsgBox Show 分派到新线程。
这会在应用程序在事件模型中实际开始关闭之前提示用户。如果用户接受后退键按下则允许发生,否则取消。您不能覆盖主屏幕按钮的按下,它必须始终立即进入主屏幕。您应该研究后台代理以通过挂起/恢复来保留计时器代码。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)