在我的应用程序中,我需要在TimeTriggered intervall上同步一些数据。现在我已经使用TimeTrigger构建了一个BackgroundTask,在此任务中我运行了一个BackgroundTransfer操作。这有效,但我对此有一些疑问。
这是一个很好的解决方案吗?在这种情况下哪些更好?
有一些神秘的执行事情。如果我将应用程序作为调试版本部署到我的手机,一切都像魅力一样,所有转移操作都在BackgroundTask的一次执行中完成,这需要+/- 15分钟。现在,如果我将应用程序作为发行版本部署到我的手机,则BackgroundTask仅传输数据1-2分钟并停止,直到触发TimeTrigger的下一次执行。为什么会有差异或为什么会这样?
修改 资源密集型任务对我来说不是一个选项,该应用程序是基于WinRT商店应用程序构建的。当这是来自backgroundTask的限制时,我怎么能从后台执行这样的操作?
EDIT2: @kiewic,我称它为等待,会改变它,但那是什么区别,因为这是后台任务中的执行?
答案 0 :(得分:1)
您必须区分BackgroundTask和BackgroundTransfer。这是两件不同的事情。
后台任务的工作是开始您的后台转移。 BackgroundTransfer(上传或下载操作)的工作是独立于您的应用程序执行传输。
转移不需要在BackgroundTask中进行。如果您在后台传输开始时呼叫等待,您将等到上传完成。如果不这样做,您将继续在任务中执行(例如,如果您处于循环中,则可以开始构建并开始下一次上载)。
启动后台传输后,操作系统将独立于您的应用或任何任务进行管理。它甚至可以在重启电话后继续存在。