2016-12-02 42 views
3

tl; dr:如何注册后台任务而无需运行应用程序?在不运行应用程序的情况下注册后台任务

长版

我想注册一个后台任务在使用SystemTriggerType.UserPresent运行每次用户登录。

我找到了关于注册任务的信息,但那是必须执行的代码。如果仅在该应用程序运行之后执行任务,那就没问题了。但是,如何在没有的情况下注册任务? 后台任务可以通过

var builder = new BackgroundTaskBuilder(); 

进行注册,然后

builder.Name = taskName; 
builder.TaskEntryPoint = taskEntryPoint; 
builder.SetTrigger(trigger); 
BackgroundTaskRegistration task = builder.Register(); 

如此地: Register a background task

但正如我所说 - 我的问题是如何在应用程序执行之前运行此代码。

回答

6

您可以在清单中使用preInstalledConfigTask扩展名。此任务将在您的应用程序安装后启动。

有时您的应用程序在安装 后需要立即更新。本合同将使您无需任何用户交互立即启动 更新任务,以确保您的应用程序 立即更新。

Here是所有可用扩展的完整列表。

preinstall task in editor

<Extensions> 
    <Extension Category="windows.preInstalledConfigTask" EntryPoint="PreInstallTask.Task" /> 
    </Extensions> 

你会发现在manifest schema

+0

谢谢。 +1。虽然我还没有接受,直到我可以验证它。目前,虽然Task(UserPresent,而不是preInstalled)似乎已经注册,但即使在我注销并重新启动时也不会调用它。 (而且我认为即使我只锁定屏幕,也应该调用它。) – ispiro

0

扩展定义中我有同样的问题,最近和缺少什么:

preInstalledConfigtask可以使用清单编辑器设置在之前的回答中,预安装配置仅触发原始设备制造商(OEM)& MO。 See here

这就是说,它可能不可能做你想做的事情,因为任务不会触发,除非你没有管理操作系统并在你的开发者中心拥有必要的权利。 See here.

相关问题