BackgroundTransfer inside BackgroundTask

本文关键字:BackgroundTask inside BackgroundTransfer | 更新日期: 2023-09-27 18:31:43

在我的应用程序中,我需要在TimeTriggered间隔上同步一些数据。现在我已经使用 TimeTrigger 构建了一个 BackgroundTask,在这个任务中我运行一个 BackgroundTransfer 操作。这有效,但我对此有一些疑问。

  1. 这是一个很好的解决方案,还是有更好的解决方案?

  2. 有一些神秘的处决东西。如果我将应用程序作为调试版本部署到我的手机,一切都像魅力一样工作,所有传输操作都在后台任务的一次执行内完成,这需要 +/- 15 分钟。现在,如果我将应用程序作为发布版本部署到我的手机,BackgroundTask 只会传输数据 1-2 分钟并停止,直到触发 TimeTrigger 的下一次执行。为什么会有区别或为什么会这样?

编辑:资源密集型任务对我来说不是一个选项,该应用程序是在 WinRT 应用商店应用程序上构建的。当这是后台任务的限制时,我如何从后台执行这样的操作呢?

编辑2:@kiewic,我称之为可等待,会改变这一点,但是有什么区别,因为这是在后台任务中执行的?

BackgroundTransfer inside BackgroundTask

你必须区分 BackgroundTask 和 BackgroundTransfer。 这是两回事。

后台

任务的工作是启动后台传输。后台传输(上载或下载操作)的工作是独立于应用程序执行传输

传输不需要在后台任务中进行。 如果在后台传输开始时调用 await,则将等待上传完成。 如果不这样做,您将在任务中继续执行(例如,如果您在循环中,则可以开始构建并开始下一次上传)。

开始后台传输后,操作系统将独立于您的应用或任何任务对其进行管理。 它甚至可以在手机重新启动后幸存下来。