Windows Phone 8.1 实现彻底退出应用/页面跳转后返回(后退按键事件)
这几天在研究 WP 8.1 的开发的时候遇到两个问题:
- WP 8.1 应用默认按后退键退出后是会进入后台的(长按
Back
键可以看到),强迫症肯定会伤不起啊... - 从第一个页面跳转进入第二个页面之后,按
Back
键是没办法返回到第一个页面的
查了下资料,在群里讨论了一下,得出结果就是在 MainPage.xaml.cs
(或者是其他,你的启动页面)修改/加入以下代码即可。
protected override void OnNavigatedTo(NavigationEventArgs e)
{
// TODO: 准备此处显示的页面。
// TODO: 如果您的应用程序包含多个页面,请确保
// 通过注册以下事件来处理硬件“后退”按钮:
// Windows.Phone.UI.Input.HardwareButtons.BackPressed 事件。
// 如果使用由某些模板提供的 NavigationHelper,
// 则系统会为您处理该事件。
// 添加下面这行,用来处理按键事件的
Windows.Phone.UI.Input.HardwareButtons.BackPressed += HardwareButtons_BackPressed;
}
//添加 HardwareButtons_BackPressed 事件
private void HardwareButtons_BackPressed(object sender, Windows.Phone.UI.Input.BackPressedEventArgs e)
{
e.Handled = true;
Windows.Phone.UI.Input.HardwareButtons.BackPressed -= HardwareButtons_BackPressed;
if (Frame.CanGoBack) // 还能返回,说明在第二个页面
{
e.Handled = true;
Frame.GoBack(); // 返回第一个页面
}
else // 已经在第一个页面了
{
Application.Current.Exit(); //彻底退出应用
// 当然你也可以在这里添加一些代码,
// 实现“双击返回键退出应用”
}
}