iOS后台应用程序networking访问

我有一个需要位置跟踪的应用程序,我认为它适合于允许的背景模型之一。 但是,当位置发生重大变化时,我需要发布到networking服务。 我已经看到在后台处理中禁止networking访问的写法,但是我没有在苹果的文档中读到。

有谁知道它是否犹太教(关于苹果政策)偶尔和非常快速的networking更新后台进程?

好的一点,根据苹果的文件,只有下列用法可以在后台进行,每项服务都应该注册:

  • audio – 应用程序在后台播放可听内容给用户。 (此内容包括使用AirPlay播放audio或video内容。)
  • 位置 – 即使在后台运行时,应用程序也能让用户了解自己的位置。
  • voip-该应用程序提供用户使用Internet连接拨打电话的function。
  • 报亭内容 – 该应用程序是一个报亭应用程序,在后台下载和处理杂志或报纸内容。
  • 外部附件 – 该应用程序与需要通过外部附件框架定期传递更新的硬件附件配合使用。
  • 蓝牙中央 – 该应用程序与蓝牙配件,需要通过CoreBluetooth框架定期提供更新。

除了这个服务之外,你可以在后台创build一个有限长度的任务 ,实际上可以让你结束一个networking进程。

如果您的应用正在执行一些重要任务(如将用户数据写入磁盘或从networking服务器下载重要文件),则这一点很重要。

关于你的问题,如果你有一个位置服务在后台运行,你是否可以做一个快速的networking连接还不是很清楚。 我会说是的一个短的连接,但不完全确定。 从iOS 4.0开始,这个用法在文档中被拒绝并清除,现在这个部分已经被删除了。

是的,如果你使用背景只是快速连接。 苹果不会允许你在后台运行,只要你想。

NO如果您的应用不属于Voip,音乐或GPS类别; 那么你不能在后台运行。

更多这里: 更新我的应用程序,当它在后台


你可以使用ASIHTTPRequest 。

ASIHTTPRequest有一个属性setShouldContinueWhenAppEntersBackground: 默认是NO ,你可以打开YES这样你有后台networking进程。

苹果的文件似乎有点不清楚严格的政策。 应用程序商店中肯定有应用程序会在后台作为基于位置的应用程序运行时进行零星的networking调用。 Geoloqi应用程序就是一个例子。