后台任务和后台正确获取有什么区别?

Lit*_*nny 7 ios xamarin background-task background-fetch

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

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

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

这是我非常简短的理解。

Lio*_*ion 7

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

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

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

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

您可以参考Apple 文档进行后台获取!它指出,

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