位置更新并向服务器发送位置,导致iphone自动加热并重新启动

时间:2015-01-08 06:38:49

标签: ios objective-c iphone gps cllocationmanager

我正在使用CLLlocationManager获取用户位置并在后台更新lcoation时运行webservice但它会导致iphone升温和电池耗尽?有人有解决方案吗?

2 个答案:

答案 0 :(得分:1)

让你的职位消耗能力,你可以做一些事情来避免这种情况:

  • 使用重要的位置更改(如果您每次不需要精确的位置,那就很好)
  • 限制精度(改变这可以让你避免使用GPS,它真的是一个电池滤水器)

我不理解热量,是的GPS会让设备变得更热,但我从未因为热量而重启。
你确定你没有进入昂贵的计算任务吗?你可以通过使用分析器或更高版本的xcode来检查这一点。
你也可以设置距离滤波器,这将继续获得位置(它不会减少电池消耗),但只有在达到距离阈值时才会调用delagate回调。
在iOS6上,它还引入了deferring location updates in background的概念,这可能是管理从设备传出的网络流量的最佳解决方案。

答案 1 :(得分:1)

事实上,您只能在低位置精度(1000km)和高位(3-6m)之间做出决定。 在第一种情况下,GPS芯片被禁用,在第二种情况下它被启用。

如果已启用,并且您需要精确的位置,则无法执行任何操作。 GPS需要电源,并且电源持续时间超过8小时全精度位置(在我的iphone4上测量)

预热是没有问题的,但是我记不起由于GPS引起的手机热身(我会尽快检查)。但可以肯定的是,它永远不会升温,以至于它会重新启动, 所以你的情况有点奇怪,这也可能是你设备的缺陷。

升温的原因也可能是您经常尝试与服务器进行通信。 您可以自己查看,只需下载一个不错的GPS应用程序,然后让它录制一首曲目。 如果它确实变热,您的设备可能会出现问题。 (或者你生活在一个极端炎热的环境中,阳光普照在你的手机上。) 通过禁用网络代码进行测试。