Windows 10移动UWP - 慢速按钮

时间:2016-08-14 08:06:04

标签: c# sqlite windows-phone win-universal-app

我只用c#编写的应用程序,带有sqlite数据库。我意识到它在我的手机上无法正常工作。我很确定这个问题与按下的bulit-in后退按钮的功能有关。当我重复几次这个过程时:

打开新页面 - >通过后退按钮返回上一页,应用程序启动速度变慢。

当我添加自己的后退按钮仅用于测试时,一切正常。

我主要基于这篇文章: http://www.wintellect.com/devcenter/jprosise/handling-the-back-button-in-windows-10-uwp-apps

2 个答案:

答案 0 :(得分:1)

  

打开新页面 - >通过后退按钮返回上一页,应用程序启动速度变慢。

在查看您的项目后,我发现了问题:您正在每个页面上注册SystemNavigationManager.GetForCurrentView().BackRequested +=OnBackRequestedSystemNavigationManager.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