停止核心位置更新,然后使用计时器重新启动
-
01-10-2019 - |
题
我想知道是否有人可以指出我(或粘贴)一些代码来处理关闭核心位置更新以节省电源。
据我了解,一旦阅读所需的准确性,就应该立即停止核心位置更新。如果您在一定时间后无法获得良好的准确性阅读,则还应停止更新(大概是使用计时器)。每次停止更新时,都应触发计时器(大约60秒)以重新启动核心位置并获得新的阅读。
是否有Apple代码来完成所有这些? locateme,taggedLosations和位置示例代码似乎没有这样做。
解决方案
Locateme示例具有您需要的代码。您只需要创建第二个选择器即可发射。 locateme在其设置方法中调用以下内容...
[self performSelector:@selector(stopUpdatingLocation:) withObject:@"Timed Out" afterDelay:[[setupInfo objectForKey:kSetupInfoKeyTimeout] doubleValue]];
它说经过一定的时间(Ksetupinfokeytimeout),请致电 stopUpdatingLocation
方法NSSTRING的参数=“ Timed Out”。在 - 的里面 stopUpdatingLocation
方法, [locationManager stopUpdatingLocation]
被要求告诉冠层停止。
因此,您需要做的就是添加其他选择器...
[self performSelector:@selector(timeToRestartCoreLocation) afterDelay: 60];
在 - 的里面 stopUpdatingLocation
方法,将调用 timeToRestartCoreLocation
60秒后的方法。然后在你里面 timeToRestartCoreLocation
方法,致电 [locationManager startUpdatingLocation]
再次启动连冠。
不隶属于 StackOverflow