Windows 10 个移动 UWP - 慢退按钮
Windows 10 mobile UWP - slow back button
我有一个简单的用 c# 编写的应用程序,带有 sqlite 数据库。我意识到它在我的 phone 上运行不快。我很确定这个问题与按下内置后退按钮的功能有关。当我重复几次这个过程时:
打开新页面 -> return 按后退按钮返回上一页,应用程序启动速度变慢。
当我添加自己的后退按钮只是为了测试时,一切正常。
我主要基于这篇文章:
http://www.wintellect.com/devcenter/jprosise/handling-the-back-button-in-windows-10-uwp-apps
如果你的背是 Phone 硬键,你可以处理事件。
link 是说 pc 并添加后退按钮,你应该
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
Open new page -> return to previous page by back button, the application starting slows down.
查看您的项目后,我发现了问题所在:您在每个页面上都注册了 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));
//};
我有一个简单的用 c# 编写的应用程序,带有 sqlite 数据库。我意识到它在我的 phone 上运行不快。我很确定这个问题与按下内置后退按钮的功能有关。当我重复几次这个过程时:
打开新页面 -> return 按后退按钮返回上一页,应用程序启动速度变慢。
当我添加自己的后退按钮只是为了测试时,一切正常。
我主要基于这篇文章: http://www.wintellect.com/devcenter/jprosise/handling-the-back-button-in-windows-10-uwp-apps
如果你的背是 Phone 硬键,你可以处理事件。
link 是说 pc 并添加后退按钮,你应该
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
Open new page -> return to previous page by back button, the application starting slows down.
查看您的项目后,我发现了问题所在:您在每个页面上都注册了 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));
//};