【问题标题】:Run Background Task Indefinitely in UWP在 UWP 中无限期运行后台任务
【发布时间】:2018-04-16 12:12:22
【问题描述】:

我需要不断轮询 API 并在 UWP 应用中提供通知,无论它是对用户可见还是最小化还是没有焦点 或 暂停

如果我选择在应用程序本身中编写它,它会在应用程序暂停和恢复时停止工作,同时再次打开应用程序或保持焦点。 所以我选择了后台任务,这样即使应用程序暂停(例如:最小化),它也会每次都运行。

但现在任何后台任务都限制在 30 秒的短跨度内,如果使用应用程序触发器触发,则最多持续 10 分钟。

我尝试在完成 10 分钟后重新触发后台任务,但在重新触发阶段,如果应用程序被最小化或设备被锁定,则不会发生。仅在我恢复失去无限期行为的应用程序后才会发生重新触发。

我还尝试添加受限功能以无限期运行任务,但这对于商店应用程序是不允许的,并且仅适用于侧面加载。 但我的要求是支持 Store 应用程序。

请帮助我如何使用后台任务或 UWP 平台中可用的任何其他模型来实现此行为。

【问题讨论】:

  • idownvotedbecau.se/nomcve ..请添加有关您如何注册/取消注册后台任务的相关代码..另外,请通过docs.microsoft.com/en-us/windows/uwp/launch-resume/… ..
  • 我正在使用进程内后台任务。您提供的 ref 超出了 proc 后台任务。但是 diff b/w 这些只是流程方面的,但后台任务本身的行为方式相同并执行相似的特征。如我错了请纠正我。如何在此处添加附件提交代码?
  • 我已经删除了我的反对票,因为这似乎是一个有效的问题。要添加代码,您只需编辑您的问题并将其粘贴到那里,然后使用文本工具箱中的代码格式化程序对其进行格式化。
  • 另外,您需要多久进行一次 API 调用?如果是每 10-15 分钟左右,我会建议进行进程外执行,因为商店应用程序在暂停时会有一些限制。
  • 根据我们的要求,它应该是(10 秒 - 1 分钟)范围内的任何值。那么 out of proc 后台任务是否会无限期地运行应用程序触发器而不是 10 分钟限制?您能否详细说明商店应用在暂停时有哪些限制?

标签: uwp windows-10 background-task indefinite


【解决方案1】:

要长时间/无限期运行后台任务,您需要在应用的清单中声明 extendedBackgroundTaskTime 功能。

https://docs.microsoft.com/en-us/windows/uwp/launch-resume/run-in-the-background-indefinetly

【讨论】:

  • 是的,我试过了,它有效。但这是商店提交场景不允许的受限功能,但商店应用程序需要它。参考:docs.microsoft.com/en-us/windows/uwp/packaging/…
  • 让我知道这个问题的任何其他可能的解决方案
  • 受设计限制。商店应用程序不应无限制地使用系统的 CPU/电池资源。你的方案是什么?
  • 我们需要根据应用程序中配置的轮询速率(10 秒 - 1 分钟)持续监控打印机,并提供有关配置事件的通知(例如:纸张用完、作业完成)。因此,即使应用程序被最小化,我们也需要支持轮询(查询 Web 服务 API),所以我选择了后台任务路径,该路径旨在即使在最小化时也能运行,但现在我遇到了时间限制
  • 在 PC(使用交流电源)上,您应该会看到 EE 仅在应用程序获得更新服务时才会被撤销。在使用电池运行的笔记本电脑/平板电脑上,EE 会话将在 10 分钟后被撤销。但是,您可以通过在省电模式设置中将应用设置为“在后台始终允许”来防止这种情况发生。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多