首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Windows 10 IOT生命周期(或:如何属性终止后台应用程序)

Windows 10 IOT生命周期(或:如何属性终止后台应用程序)
EN

Stack Overflow用户
提问于 2015-05-24 23:34:56
回答 1查看 3.8K关注 0票数 10

为了在带有Windows 10 IOT Core的无头Raspberry Pi 2上使用UWP应用程序,我们可以使用后台应用程序模板,它基本上创建了一个新的UWP应用程序,它只在启动时执行一个后台任务:

代码语言:javascript
复制
<Extensions>
  <Extension Category="windows.backgroundTasks" EntryPoint="BackgroundApplication1.StartupTask">
    <BackgroundTasks>
      <iot:Task Type="startup" />
    </BackgroundTasks>
  </Extension>
</Extensions>

为了使应用程序继续运行,我们可以使用以下启动代码:

代码语言:javascript
复制
public void Run( IBackgroundTaskInstance taskInstance )
{
  BackgroundTaskDeferral Deferral = taskInstance.GetDeferral();

  //Execute arbitrary code here.
}

通过这种方式,应用程序将继续运行,并且操作系统不会在IOT世界中的任何超时之后关闭应用程序。

目前为止一切都很好。

但是:当设备关闭时,我希望能够正确地关闭后台应用程序(或者要求应用程序“轻轻”关闭)。

在“正常”UWP应用程序中,您可以订阅OnSuspending事件。

在这种背景情况下,我如何得到关于即将关闭/关闭的通知?

我们非常感谢你的帮助。

提前感谢!

-Simon

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-25 03:22:34

你需要处理取消的事件。如果设备被正确关闭,后台任务将被取消。如果未注册,Windows也将取消任务。

代码语言:javascript
复制
    BackgroundTaskDeferral _defferal;
    public void Run(IBackgroundTaskInstance taskInstance)
    {
         _defferal = taskInstance.GetDeferral();
        taskInstance.Canceled += TaskInstance_Canceled;
    }

    private void TaskInstance_Canceled(IBackgroundTaskInstance sender, BackgroundTaskCancellationReason reason)
    {
        //a few reasons that you may be interested in.
        switch (reason)
        {
            case BackgroundTaskCancellationReason.Abort:
                //app unregistered background task (amoung other reasons).
                break;
            case BackgroundTaskCancellationReason.Terminating:
                //system shutdown
                break;
            case BackgroundTaskCancellationReason.ConditionLoss:
                break;
            case BackgroundTaskCancellationReason.SystemPolicy:
                break;
        }
        _defferal.Complete();
    }

Cancellation Reasons

Canceled Event

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30429461

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档