我想知道是否有人可以指示(或粘贴)某些代码来处理关闭Core Location更新以节省电量。
据我所知,您应该在获得所需精度后立即停止核心位置更新。如果您在一段时间后没有获得良好的准确度读数,您还应该停止更新(可能使用计时器)。每次停止更新时,都应该启动计时器(大约60秒)以重新启动Core Location并获得新的读数。
是否有Apple代码可以完成所有这些操作? LocateMe,TaggedLocations和Locations示例代码似乎没有这样做。
答案 0 :(得分:3)
LocateMe示例包含您需要的代码。你只需要创建第二个选择器来开火。 LocateMe在其设置方法中调用以下内容...
[self performSelector:@selector(stopUpdatingLocation:) withObject:@"Timed Out" afterDelay:[[setupInfo objectForKey:kSetupInfoKeyTimeout] doubleValue]];
它表示在一定时间后(kSetupInfoKeyTimeout),请调用stopUpdatingLocation
方法NSString =“Timed Out”的参数。
在stopUpdatingLocation
方法中,调用[locationManager stopUpdatingLocation]
告诉CoreLocation停止。
所以,你需要做的只是添加另一个选择器......
[self performSelector:@selector(timeToRestartCoreLocation) afterDelay: 60];
在stopUpdatingLocation
方法内部,该方法将在60秒后调用timeToRestartCoreLocation
方法。然后在timeToRestartCoreLocation
方法中,调用[locationManager startUpdatingLocation]
再次启动CoreLocation。