目标c-iPhone头脑风暴-背景中的CL定位-每15分钟轮询一次



这是一个场景。我需要一个应用程序,它每15分钟轮询一次web服务和用户的位置,无论是在后台还是前台。

此刻我:

  1. 启动/重新启动位置管理器,精度最高,距离过滤器无
  2. 等待以达到所需的精度
  3. 存储读取
  4. setDesiredAccurcy为:"kCLLocationAccuracyThreeKilometers"
  5. 将DistanceFilter设置为:1000
  6. 在延迟:900之后设置一个performSelector:@selector(getLocation)with Object:nil
  7. 从步骤1重新开始

我想让这成为最节省电池的方法,并想看看其他堆叠者对以上选项的看法,以及你们是否有其他建议。

谢谢詹姆斯。

如果您不以iOS3为目标,请考虑使用"重大变化"API,它应该是这种情况下最有效的。

为什么不注册应用程序进行重大位置更改并使用它?很多应用程序都可以(包括我的一些),而且它对电池非常友好。事实上,除非手机进行手机信号塔切换,否则什么都不会发生。如果手机在某个地方放置数小时,就不会对电池产生任何影响。在你的方法中,整个CL框架和GPS硬件必须每15分钟启动一次。

最后,我让应用程序在performSelector:WithDelay上每15分钟启动/停止一次位置管理器。

基本上,当CLLocationManager给出的读数在所需精度范围内时,我将CLLocation降低到有意义的变化,然后将应用程序设置为15分钟后再读取一次,将精度更改为最高设置之一并重复。

希望这对未来的任何人都有帮助。谢谢James

最新更新