在不运行应用程序的情况下注册后台任务
Posted
技术标签:
【中文标题】在不运行应用程序的情况下注册后台任务【英文标题】:Register a Background Task without running the app 【发布时间】:2016-12-02 11:49:02 【问题描述】: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.
但正如我所说 - 我的问题是如何在应用程序执行之前运行此代码。
【问题讨论】:
【参考方案1】:您可以在清单中使用 preInstalledConfigTask
扩展名。此任务将在您的应用程序安装后开始。
有时您的应用程序需要在更新后立即更新 安装。该合同将使您能够立即启动 在没有任何用户交互的情况下更新任务以确保您的应用程序 立即更新。
Here 是所有可用扩展的完整列表。
preInstalledConfigtask
可以使用清单编辑器进行设置:
<Extensions>
<Extension Category="windows.preInstalledConfigTask" EntryPoint="PreInstallTask.Task" />
</Extensions>
您将在manifest schema 中找到扩展定义
【讨论】:
谢谢。 +1。虽然在我可以验证之前我还没有接受。目前,虽然任务(UserPresent,而不是 preInstalled)似乎已注册,但即使我注销并再次登录也不会调用它。 (而且我认为即使我只锁定屏幕也应该调用它。)【参考方案2】:我最近遇到了同样的问题,之前的答案中缺少的是预安装配置仅针对 OEM 和 MO 触发。 See here.
话虽如此,您可能无法做您想做的事,因为除非您不管理操作系统并发送图像 + 在开发者中心拥有必要的权限,否则任务永远不会触发。 See here.
【讨论】:
以上是关于在不运行应用程序的情况下注册后台任务的主要内容,如果未能解决你的问题,请参考以下文章
如何在不杀死未完成的芹菜任务的情况下重新启动heroku应用程序