Windows phone 8 Windows Phone中的应用程序不知不觉退出

Windows phone 8 Windows Phone中的应用程序不知不觉退出,windows-phone-8,windows-phone,Windows Phone 8,Windows Phone,应用程序在未捕获异常的情况下不知不觉退出。我们已经在应用程序中实现了“尝试捕获”功能。我无法在应用程序未处理的异常中捕获异常 例如,我们在应用程序中有子菜单屏幕,同时单击子菜单内容列表屏幕显示。但有时连续在子菜单屏幕上工作,应用程序会在不知不觉中退出。 请建议 子菜单页面示例代码: 我有两个堆栈面板,每个都有相同的代码集,用于导航到其他页面 private void stk_searchworkorder_MouseLeftButtonUp(object sender, MouseButtonE

应用程序在未捕获异常的情况下不知不觉退出。我们已经在应用程序中实现了“尝试捕获”功能。我无法在应用程序未处理的异常中捕获异常

例如,我们在应用程序中有子菜单屏幕,同时单击子菜单内容列表屏幕显示。但有时连续在子菜单屏幕上工作,应用程序会在不知不觉中退出。 请建议

子菜单页面示例代码: 我有两个堆栈面板,每个都有相同的代码集,用于导航到其他页面

private void stk_searchworkorder_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
    {
        try
        {
            (Application.Current.RootVisual as PhoneApplicationFrame).Navigate(new Uri("/MMS/WOSearch.xaml?History=false", UriKind.RelativeOrAbsolute));
        }
       catch (System.Reflection.TargetException ex) { }   catch (Exception ex)
        {
            MessageBox.Show("Unknown exception", app.glbExceptionTitle, MessageBoxButton.OK);
        }
    }

    private void stk_searchworkorder_MouseEnter(object sender, MouseEventArgs e)
    {
        try
        {
            SolidColorBrush br = new SolidColorBrush(Color.FromArgb(255, 40, 40, 40));
            stk_searchworkorder.Background = br;
        }
        catch (System.Reflection.TargetException ex) { }
        catch (Exception ex)
        {
            MessageBox.Show("Unknown exception", app.glbExceptionTitle, MessageBoxButton.OK);
        }
    }

    private void stk_searchworkorder_MouseLeave(object sender, MouseEventArgs e)
    {
        try
        {
            SolidColorBrush br = new SolidColorBrush(Color.FromArgb(255, 0, 0, 0));
            stk_searchworkorder.Background = br;
        }
        catch (System.Reflection.TargetException ex) { }
        catch (Exception ex)
        {
            MessageBox.Show("Unknown exception", app.glbExceptionTitle, MessageBoxButton.OK);
        }
    }

查看App.xaml.cs文件。存在一个未处理的应用程序异常方法。确保在此方法中正确处理异常,并且如果设置e.Handled=true,则此后不会使应用程序崩溃


请注意,这并不能捕获所有可能未处理的异常-例如,OutofMemoryException仍将使应用程序崩溃,但它确实捕获了很多异常。

不确定是否遗漏了一些内容,但您是否只使用NavigationService.Navigate而不是(Application.Current.RootVisual作为PhoneApplicationFrame).导航?

您很可能内存不足。如果应用程序的内存使用超过限制,WP8操作系统将终止应用程序,而应用程序无法捕获任何异常

限制是

对于疑难解答,您可以使用查询应用程序中的内存使用情况。在一天结束时,你要确保你的应用程序永远不会超过150


您的应用程序可能存在内存泄漏。

在大多数情况下(可能包括此情况),是的,您可以这样做,但在某些情况下,您不能这样做-例如,如果您使用的实用程序功能无法访问NavigationService。我可以想象,由于这些都是UI组件事件处理程序,但事实并非如此。如何避免内存泄漏?注意:我们经常从应用程序调用WCF服务,以将数据收集分配/保存到在线服务器。请建议应用程序退出和内存泄漏。如何克服这些问题这不是一个容易回答的问题。您需要从SDK提供的Windows Phone应用程序分析工具开始,该工具将向您指出内存分配较大或不断增加(泄漏)的对象。工具url: