后台任务和后台获取正确有什么不同?

时间:2017-05-29 09:26:21

标签: ios xamarin background-task background-fetch

我正在网上查看有关后台任务和后台获取的一些文档。

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

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

这是我非常简短的理解。

1 个答案:

答案 0 :(得分:2)

是的,你的理解是正确的!让我更深入地解释一下!

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

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

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

您可以参考Apple doc进行后台获取!它说,

  

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