我一直在使用GPS进行车辆跟踪2年。学到了很多东西...根据我的经验,startMonitoringForRegion或Geo-fencing取决于单元格更改事件,didEnter或didExit事件直到有单元格/ wifi更改事件才会启动。所以它对电池消耗没有任何影响。但是它会进行额外的计算,这取决于当前监视的区域数量。即使Apple的Reminder应用程序也没有为基于位置的提醒提供良好的结果,因为它使用了地理围栏。
另一种方法是在每分钟m分钟后启动GPS n分钟是不错的选择,如果明智地完成,它不应该影响电池寿命。在高精度模式下,电池对GPS激活的确切影响是什么?例如,如果您使用kCLLocationAccuracyBest和distance-filter = 0启用GPS,您可以从字面上观察电池排水,很快您的设备也会开始变热。
如果我是你,我会用kCLLocationAccuracyBest(或者kCLLocationAccuracyNearestTenMeters使用更少的电池,如果准确度不是那么重要)和距离过滤器= 5(米),每10分钟激活一次GPS,持续5秒。在这种情况下,电池消耗将是不明显的。您可以使用类似的设置来解决您的特定情况,并最终找出最适合您的设置。
BTW:iPhone使用AGPS,A-GPS还使用网络资源在信号较差的情况下定位和使用卫星。因此,当您执行startUpdatingLocation时,它还将使用附近的cell tower信息。看到 http://en.wikipedia.org/wiki/Assisted_GPS