【问题标题】:UWP BackgroundTask on App update应用更新上的 UWP BackgroundTask
【发布时间】:2016-11-17 21:13:38
【问题描述】:

我有一个简短的问题,如果我更新包含 BackgroundTask 的应用程序,我是否需要在更新后取消注册并重新注册该任务?我经历过,在某些用户的设备上进行更新后,BackgroundTask 不再工作,用户不得不再次禁用并启用它。我在 msdn 文档中看到了一个“ServicingComplete”BackgroundTask,它应该在 App 更新后启动,那么在其中重新注册我的主 BackgroundTask 是否正确?或者在应用更新后让简单的 BackgroundTask 100% 工作的最喜欢的方法是什么?

【问题讨论】:

  • 你如何注册你的后台任务?用户在什么情况下会在你的应用中注册你的后台任务?或者您的后台需要在安装应用程序后始终注册。
  • 我使用按钮在我的应用程序中手动注册了 BackgroundTask。但是,当我为应用程序提交更新时,在某些用户的设备上,一旦安装了应用程序更新,BackgroundTask 就不再工作了。按下 Button 在 App 内注册 BackgroundTask 后,BackgroundTask 又开始工作了。但这只是在少数设备上的情况。所以我的问题是,如何处理?

标签: c# uwp win-universal-app background-task


【解决方案1】:

答案是肯定的。如果您的应用已更新,您需要

  • 取消注册您的后台任务
  • 致电BackgroundExecutionManager.RemoveAccess();
  • 致电BackgroundExecutionManager.RequestAccessAsync();
  • 重新注册您的任务

在我自己的应用程序中,我将最新版本号存储在本地设置中,以便我可以检测到这一点。

【讨论】:

  • 好的,但是这可以从 ServicingComplete 任务中完成,还是在应用启动时重新注册?每次都需要 RemoveAccess() 吗?
  • 我也遇到过这个问题,刚刚尝试过,确实是 RemoveAccess 帽子有所作为。没有它,我的 (InProcess) 任务就没有运行,没有任何错误消息。
  • @andy:我在应用启动时注册(如有必要)。在您的情况下,注册后台任务是用户启动的事情,您可以在启动时检查该任务是否已经注册。如果没有,什么也不做;否则检查应用程序更新并完成我列出的步骤。我自己没有使用过 ServicingComplete 后台任务,因此我不愿提供任何建议——这很可能是一个可行的选择。
  • 这在 Win 8/8.1 中是必需的。 Win10不需要。
  • 它现在在 ServicingComplete BackgroundTask 中工作,事实证明,它是缺少的 BackgroundExecutionManager.RemoveAccess()。非常感谢您的帮助!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-11-26
  • 1970-01-01
  • 2016-10-18
  • 2019-10-28
  • 2017-07-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多