0

我正在 windows phone 10 中开发应用程序

出于某种原因,我必须处理应用程序状态(进入后台,进入前台)。我在 App.xaml.cs 处理了事件挂起和恢复,但它不起作用,没有达到 OnSuspending 和 OnResuming。请帮我检查我的源代码并告诉我如何处理这些事件。

这是我的代码:

public App()
    {
        Microsoft.ApplicationInsights.WindowsAppInitializer.InitializeAsync(
            Microsoft.ApplicationInsights.WindowsCollectors.Metadata |
            Microsoft.ApplicationInsights.WindowsCollectors.Session);
        this.InitializeComponent();
        this.Suspending += OnSuspending;
        Application.Current.Suspending += new SuspendingEventHandler(OnSuspending);
        Application.Current.Resuming += new EventHandler<Object>(OnResuming);

    }

    private void OnSuspending(Object sender, Windows.ApplicationModel.SuspendingEventArgs e)
    {
        var deferral = e.SuspendingOperation.GetDeferral();
        //TODO: Save application state and stop any background activity
        deferral.Complete();


    }
    private void OnResuming(object sender, object e)
    {
        // do some thing
    }
4

2 回答 2

1

您应该使用 Visual Studio 2015 的 Lifecycle Events 下拉菜单。它允许您在SuspendResumeSuspend 和 Shutdown状态之间进行选择。

每当您在调试中运行您的应用程序时,它永远不会自行进入挂起状态。

这里有一些文档:https ://blogs.windows.com/buildingapps/2016/04/28/the-lifecycle-of-a-uwp-app/

于 2016-05-12T12:22:07.153 回答
1

您订阅了两次暂停事件

 this.Suspending += OnSuspending;
 Application.Current.Suspending += new SuspendingEventHandler(OnSuspending);

最好离开经典

 this.Suspending += OnSuspending;
 this.Resuming += App_Resuming;

并且以同样的方式添加恢复事件

 private void App_Resuming(object sender, object e)
    {
       // TODO
    }

您是否调试挂起/恢复事件,如本文所述:
如何在 Visual Studio 中触发 Windows 应用商店应用程序的挂起、恢复和后台事件

于 2016-05-12T12:22:34.920 回答