在iOS中运行后台服务

我需要编写一个iOS应用程序,每30分钟向服务器发送一次数据。 当应用程序在后台可以工作吗? 它有多可靠?

在您请求的时间间隔内,无法在后台永久执行任务。 您可以通过开发者连接请求特定权限,但是我必须警告您,您需要一个非常引人注目的论点。 我在下面列出了这些文档,也许你的请求属于可以永久运行的分组之一。 或者,也许你可以使用其中一个长时间运行的后台线程,并以适应你正在尝试的任务的方式进行调整。

直接从苹果的文档:

实施长期运行的后台任务

对于需要更多执行时间来执行的任务,您必须请求特定的权限才能在后台运行它们,而不会被暂停。 在iOS中,只有特定的应用程序types才能在后台运行:

  • 在后台播放可听内容的应用,例如音乐播放器应用
  • 随时向用户通知其位置的应用,例如导航应用,支持基于互联网协议的语音(VoIP)报亭应用的应用,需要下载和处理新内容
  • 从外部附件获得定期更新的应用程序

实现这些服务的应用程序必须声明它们支持的服务,并使用系统框架来实现这些服务的相关方面。 声明这些服务可以让系统知道你使用了哪些服务,但是在某些情况下,系统框架确实会阻止你的应用程序被挂起。

〜/行尾

在iOS7中引入了新的多任务API,因此可以在无限的时间内运行后台任务。 苹果鼓励使用NSURLSession API创build后台会话并排队传输

包括“后台抓取”和“远程通知”的新的UIBackgroundModes也在iOS7中引入,它有助于运行后台服务

除了一些由ios提供的特殊情况外,没有办法像服务那样​​做,正如https://stackoverflow.com/users/1515108/im-lp所说。 但是你可以模拟它。 这篇文章的答案如何:

https://stackoverflow.com/a/19121250/2835520

我希望它会帮助!