【发布时间】:2014-12-17 14:51:42
【问题描述】:
我正在开发一个使用位置的应用程序。应用程序可以在地图上保存路线,如果用户想要记录路线,应用程序必须在后台存储用户位置,然后在地图上显示。
为了在后台保存位置,我使用了应用程序 plist 中定义的属性 NSLocationAlwaysUsageDescription
我的问题是用户可能永远不想记录任何路线,但由于我定义应用程序必须在后台存储位置的方式,我的应用程序似乎总是在后台工作,而且浪费了很多即使在不需要在后台工作时也可以使用电池。
我还在我的 viewDidAppear 和 viewDidDisappear 方法上开始和停止位置更新,以避免在我不在地图屏幕上时更新位置:
- (void)viewDidAppear:(BOOL)animated
{
...
[[SBLocationManager sharedInstance] startUpdatingLocation];
...
}
- (void)viewDidDisappear:(BOOL)animated
{
[[SBLocationManager sharedInstance] stopUpdatingLocation];
[self.stationProvider stopProviding];
}
我一直在寻找这个,但我没有找到一种方法来在我想要的时候打开/关闭背景位置。 您知道是否有一种方法可以在您使用应用程序时在后台“启用/禁用”位置以让用户对其进行配置?
非常感谢您的帮助 :) 在这里见!
【问题讨论】:
-
您可以在应用通知位置更新之前配置位置的距离变化吗?
-
如果您在视图消失时停止更新位置,那么您希望如何在后台更新位置?
-
你有 distanceFilter、desiredAccuracy、deferredLocationUpdates 和一百万个其他选项,你最好阅读文档并选择最想要的方式:developer.apple.com/library/ios/documentation/CoreLocation/…
-
@Thais:希望这会有所帮助:stackoverflow.com/questions/19042894/…
-
嗨!我一直在测试添加一些关于昨天@Mrunal 帖子问题的更改,我发现一些更改似乎可以改善电池问题,但我必须对其进行测试以检测是否足够。我将所做的更改发布为第一篇文章的更新
标签: ios objective-c core-location