我正在开发一个使用位置的应用程序。该应用程序可以在 map 上保存路线,如果用户想要记录路线,该应用程序必须在后台存储用户位置,然后在 map 上显示。
为了在后台保存位置,我使用了在应用程序的 plist 上定义的属性 NSLocationAlwaysUsageDescription
我的问题是用户可能永远不想记录任何路线,但由于我定义应用程序必须在后台存储位置的方式,我的应用程序似乎总是在后台运行并且浪费了很多即使在后台工作可能不需要电池。
我还在 viewDidAppear 和 viewDidDisappear 方法上启动和停止位置更新,以避免在我不在 map 屏幕上时更新位置:
- (void)viewDidAppear:(BOOL)animated
{
...
[[SBLocationManager sharedInstance] startUpdatingLocation];
...
}
- (void)viewDidDisappear:(BOOL)animated
{
[[SBLocationManager sharedInstance] stopUpdatingLocation];
[self.stationProvider stopProviding];
}
我一直在寻找那个,但我没有找到一种方法来在我想要的时候打开/关闭背景位置。 您知道是否有一种方法可以在您使用应用程序时在后台“启用/禁用”位置,让用户对其进行配置?
非常感谢您的帮助:) 在这里见!
最佳答案
将此添加为答案,以便其他人有类似查询时可以引用。
这里是类似的问题 Periodic iOS background location updates
为了防止电池耗尽,它需要根据我们的要求打开 - 关闭位置更新。还有一些属性, desiredAccuracy 和 distanceFilter 可以这样设置,这样它就不会频繁调用位置服务。 (如给定链接中所述)
希望这对您有所帮助。
关于ios - 有时仅在 iOS 的后台更新位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27528291/