我只用c#编写的应用程序,带有sqlite数据库。我意识到它在我的手机上无法正常工作。我很确定这个问题与按下的bulit-in后退按钮的功能有关。当我重复几次这个过程时:
打开新页面 - >通过后退按钮返回上一页,应用程序启动速度变慢。
当我添加自己的后退按钮仅用于测试时,一切正常。
我主要基于这篇文章: http://www.wintellect.com/devcenter/jprosise/handling-the-back-button-in-windows-10-uwp-apps
答案 0 :(得分:1)
打开新页面 - >通过后退按钮返回上一页,应用程序启动速度变慢。
在查看您的项目后,我发现了问题:您正在每个页面上注册SystemNavigationManager.GetForCurrentView().BackRequested +=OnBackRequested
。 SystemNavigationManager.GetForCurrentView().BackRequested
是应用程序范围事件。当您在页面之间导航时,它不会处置事件处理程序。您只需在整个应用程序中注册一次。
因此,要解决此问题,您可以注释掉您网页代码隐藏的所有BackRequested
事件注册,并只保留App.xaml.cs
中的一个。
例如:在ProductsPage.xaml.cs
注释或删除以下行:
//SystemNavigationManager.GetForCurrentView().BackRequested += (s, e) =>
//{
// // TODO: Go back to the previous page
// Frame.Navigate(typeof(main1));
//};
答案 1 :(得分:0)
如果您的背面是手机硬键,您可以处理该事件。
链接是说电脑并添加后退按钮,你应该
SystemNavigationManager.GetForCurrentView().BackRequested +=OnBackRequested;
private void OnBackRequested(object sender, BackRequestedEventArgs e)
{
Frame rootFrame = Window.Current.Content as Frame;
if (rootFrame?.CanGoBack==true)
{
e.Handled = true;
rootFrame.GoBack();
}
else
{
Application.Current.Exit();
}
}
}
http://edi.wang/post/2016/2/1/windows-10-uwp-back-button-tricks http://blog.csdn.net/lindexi_gd/article/details/50618029