在启动时运行后台任务

时间:2013-11-20 02:31:31

标签: ios background-process

我正在编写一个iOS应用程序,它使用Dropbox Datastore API在多个设备之间同步数据。

在Android上,我可以告诉服务在启动时启动,这使它能够同步设备关闭时可能发生的任何更改。

我无法找到一种明确的方法让我的应用在iOS上做同样的事情。

那么,有没有人有任何建议:

  • 在iOS上高效可靠地运行简单的后台服务。
  • 让服务在启动时启动

这必须是可行的 - 一旦设备完成启动,Facebook和Gmail等应用就会开始同步。

3 个答案:

答案 0 :(得分:8)

  

在iOS上有效且可靠地运行简单的后台服务。

您无法在iOS上运行后台服务。您可以在后台执行部分操作,但操作系统保留随时终止您的应用的权利。

  

让服务在启动时启动

不可能。在iOS上启动时,第三方应用程序无法自动运行。

  

这必须是可行的 - 一旦设备完成启动,Facebook和Gmail等应用就会开始同步。

鉴于上述情况,我绝对可以告诉你,他们没有。它可能看起来像,但它们在技术上无法做到这一点。

iOS 7上的一个选项是让您的应用在收到特殊推送通知时在后台刷新数据,如here所述。简而言之,您可以发送触发数据刷新的推送通知,这可能是Facebook和GMail所做的,以便给人的印象是内容在后台不断更新。

答案 1 :(得分:1)

当您的应用启动时,它可以开始在后台更新/同步Dropbox数据。

设备启动时无法运行服务。 Facebook应用和Gmail应用没有在设备启动时运行的服务/流程。

答案 2 :(得分:1)

要完成:

您可以为application设置多种IOS后台模式(UIBackgroundModes)。

有一个允许应用程序在启动时启动(如果您的应用程序在关机时运行),并且还在崩溃时自动重新启动(它总是在后台重新启动)。这是“Voip”后台应用程序类型。

尽管苹果对“voip”应用程序的内容非常严格,但很可能对你没用。