【发布时间】:2012-03-25 16:22:09
【问题描述】:
我有一个需要位置跟踪的应用程序,我认为它完全符合允许的背景模型之一。但是,当位置发生重大变化时,我需要发布到网络服务。我已经看到在后台处理中禁止状态网络访问的文章,但我没有在 Apple 的文档中阅读。
有谁知道在后台进程中进行偶尔且非常快速的网络更新是否符合犹太教(Apple 政策)?
【问题讨论】:
标签: iphone ios networking location
我有一个需要位置跟踪的应用程序,我认为它完全符合允许的背景模型之一。但是,当位置发生重大变化时,我需要发布到网络服务。我已经看到在后台处理中禁止状态网络访问的文章,但我没有在 Apple 的文档中阅读。
有谁知道在后台进程中进行偶尔且非常快速的网络更新是否符合犹太教(Apple 政策)?
【问题讨论】:
标签: iphone ios networking location
好点,根据 Apple 文档,仅允许在后台使用以下用途,并且应注册每个服务:
- 音频 - 应用程序在后台向用户播放可听内容。 (此内容包括流式音频或视频内容 使用 AirPlay。)
- 位置 - 该应用让用户随时了解他们的位置,即使在后台运行时也是如此。
- voip - 该应用使用户能够使用互联网连接拨打电话。
- newsstand-content - 该应用是一款报亭应用,可在后台下载和处理杂志或报纸内容。
- external-accessory - 该应用程序与需要通过外部定期交付更新的硬件附件配合使用 配件框架。
- bluetooth-central — 该应用程序与蓝牙配件配合使用,该配件需要通过 CoreBluetooth 框架。
除此服务外,您还可以在后台创建一个有限长度任务,这实际上使您有可能结束网络进程。
如果您的应用正在执行某些重要任务,这可能很重要, 例如将用户数据写入磁盘或下载重要文件 来自网络服务器。
关于您的问题,如果您在后台运行定位服务,您是否可以进行快速网络连接还不是很清楚。我会说是短连接,但不完全确定。自 iOS 4.0 以来,这种用法被拒绝并在文档中明确,现在该部分已被删除。
【讨论】:
是的,如果您使用背景只是为了快速连接。 Apple 不会允许您随意在后台运行。
否如果您的应用不属于网络电话、音乐或 GPS 类别;那么你就不能在后台运行了。
更多:Update my app when it is in background
你可以使用ASIHTTPRequest。
ASIHTTPRequest 有一个属性setShouldContinueWhenAppEntersBackground:。默认是NO,你可以打开YES,这样你就有后台网络进程了。
【讨论】:
ASIHTTPRequest。
Apple 文档似乎对严格的政策有点不清楚。应用商店中肯定有应用程序在作为基于位置的应用程序在后台运行时进行零星的网络调用。 Geoloqi 应用程序就是一个例子。
【讨论】: