我可以在“位置”后台线程中做什么?

时间:2010-07-30 22:38:31

标签: iphone ios4

为了解决这个问题,假设我计划为iOS 4构建谷歌纵横客户端应用程序。 我的应用需要每两分钟上传一次用户gps位置,并下载用户好友位置。 - 在后台!

我的应用程序迫不及待地被蜂窝式塔式交换机上的操作系统唤醒(因为它们可能只发生在2公里之后,而我的应用程序需要不断的gps更新),所以我明白我可以创建一个线程,类似于GPS导航仪使用的,在后台运行。

我对iPhone编程不了解,我只需要知道我的应用是否可行。

  1. 我是否可以从后台线程中访问互联网(并上传用户gps位置),或仅限于仅对GPS位置进行采样。 1。
  2. Apple会批准此类应用程序,还是禁止使用此类应用程序?因为我的应用程序并不是真正的关键,例如gps导航器
  3. 谢谢!

2 个答案:

答案 0 :(得分:3)

正如Don所说,iOS会将位置事件发送给支持它的应用程序。从那里,应用程序可以执行它对location事件所需的操作。

后台应用可以注册以下三个选项之一:

  1. 仅有显着变化:跟踪位置的低功耗方式,只有在位置发生“重大”变化时才会唤醒应用
  2. 标准位置服务:与可以使用位置服务的所有iOS设备兼容,允许您指定距离更改,并在后台运行。但是,如果应用已被终止或暂停,iOS将不会尝试重新启动该应用。
  3. 连续位置服务:允许程序接收连续的位置更新,iOS不会在发送到后台时暂停应用程序。
  4. 更多信息:Executing Code in the BackgroundLocation Awareness Programming Guide

    如果您查看在后台执行代码,Apple会提供有关多任务处理应用程序应该和不应该执行的操作的指南。

答案 1 :(得分:0)

您将在应用中收到locationManager:didUpdateToLocation:fromLocation:条消息。在那里,你可以做任何你需要的事情,虽然你不应该更新UI或使用Open GL,如果你在后台。