2

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

目前我:

  1. 以最高准确度和无距离过滤器启动/重新启动位置管理器。
  2. 等待达到所需的精度。
  3. 商店阅读
  4. setDesiredAccuracy 为:“kCLLocationAccuracyThreeKilometers”
  5. setDistanceFilter 为:1000
  6. 设置 performSelector:@selector(getLocation) withObject:nil afterDelay:900
  7. 从步骤 1 重新开始。

我想让这成为可能的最省电的方法,并想看看其他“堆垛机”对上述选项的看法,以及你们是否有其他建议。

谢谢詹姆斯。

4

3 回答 3

2

如果您的目标不是 iOS3,请考虑使用“重大更改”API,它应该是这种情况下最有效的。

于 2011-05-23T15:58:18.963 回答
1

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

于 2011-05-23T15:56:43.383 回答
0

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

基本上,当 CLLocationManager 在所需精度内给出读数时,我降低了 CLLocation 以显着更改,然后将应用程序设置为在 15 分钟后再次读取,将精度更改为最高设置之一并重复。

希望这对将来的任何人都有帮助。谢谢詹姆斯

于 2011-06-08T11:27:01.147 回答