我正在开发一个在后台运行的本地化应用程序。
我正在使用startMonitoringSignificantLocationChanges
来获取用户的位置更新。
我知道这种方法只使用手机信号塔来确定用户位置,但即使它不是很准确,也可以节省电池电量。
我想知道,将此方法与desiredAccuracy
或distanceFilter
相结合会产生什么影响?
它是否仍然不准确且对电池友好?
或者它实际上会使用GPS并耗尽电池?
由于
答案 0 :(得分:0)
我的建议是使用两个CCLocationManager和委托方法
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
第一个用于startMonitoringSignificantLocationChanges
,第二个用于[locationManager startUpdatingLocation]
。以下是我的意思:您的主startMonitoringSignificantLocationChanges
以及您不时选择如何进行操作当您获得第一个GPS位置坐标时,您可以立即拨打第二locationManager
和[locationManager startUpdatingLocation]
[locationManager stopUpdatingLocation]
1}}。这种方法可以节省能源,并且您可以获得一些desiredAccuracy
GPS坐标。只需制作一些个人逻辑来处理来自女巫locationManager
以及何时开始和停止GPS。
希望你理解我的逻辑,否则我会写一些代码。现在我不在我的手上。
答案 1 :(得分:0)
documentation for startMonitoringSignificantLocationChanges
州:
它不依赖distanceFilter属性中的值来生成事件。
据我所知,现在有办法告诉位置经理将desiredAccuracy
用于startMonitoringSignificantLocationChanges
,从而制定了这种方法的节能特性,可用于“在后台运行。