2017-05-29 22 views
1

我正在看网页上的一些关于后台任务和背景获取的文档。正确的后台任务和后台提取有什么不同?

后台任务是应用程序仍在运行时在后台执行的任务。当应用程序处于后台时,任务完成任务的时间有限,一旦完成后台任务,任务也必须结束。

后台提取是应用程序完全处于后台或不活动状态的位置,如果资源可用,该操作将安排在某个时间点执行。

这是我非常简短的理解。

回答

1

是的,你的理解是对的!让我更深入地解释!

后台任务是在后台继续工作的能力。

例如,如果您正在播放audio并且您按Home按钮,则音频可以在后台继续播放。位置相同!您可以在后台不断更新位置。这只是一个例子,还有更多类型在后台工作。你可以说这种东西作为背景任务。可以在后台模式下继续工作的任务,称为后台任务。

您可以参考Apple doc了解您可以执行或允许iOS执行哪种背景任务。现在background fetch是完全不同的东西。如果您的应用程序在background or in inactive state中,则可以定期检查新内容或执行操作。系统会在可能的情况下自动唤醒您的应用程序并执行某些操作。例如,你可以说facebook。 Facebook有时间表,它应该定期有新的数据,所以它可以使用后台获取从服务器获取数据,而不管应用程序是否处于非活动状态!因此,当用户打开应用程序时,他/她可以获得最佳用户体验,因为内容已经由background fetch下载!

您可以参考Apple doc进行背景获取!它指出,

需要定期检查新内容的应用程序可以要求系统将其唤醒,以便他们可以启动该内容的提取操作。要支持此模式,请在Xcode项目的Capabilities选项卡的Background模式部分中启用Background fetch选项。 (您也可以通过在应用程序的Info.plist文件中包含具有获取值的UIBackgroundModes项来启用此支持。)启用此模式并不能保证系统会随时为您的应用程序提供后台提取。系统必须平衡您的应用程序的需求,以获取其他应用程序和系统本身的需求。在评估这些信息后,系统会在有很好机会的情况下为应用程序提供时间。

+0

如果我使用Xamarin表单,并使用计时器来安排数据接收,而应用程序仍处于活动状态,但在后台。这会类似于后台任务吗? – LittleFunny

+0

我对“Xamarin”没有太多的想法,但是你可以说它是一种背景任务! – Lion

+0

没问题......你解释清楚,谢谢。 – LittleFunny