-1

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

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

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

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

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

4

1 回答 1

1

您必须区分 BackgroundTask 和 BackgroundTransfer。这是两个不同的东西。

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

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

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

于 2014-11-25T15:04:01.693 回答