gpt4 book ai didi

iphone - CLLocationManager 在后台停止

转载 作者:行者123 更新时间:2023-11-29 04:02:22 25 4
gpt4 key购买 nike

我有一个应用程序,它使用CLLocationManager来跟踪用户的路线,沿着所采取的路径绘制点。应用程序使用必需的后台模式在后台运行 > 应用程序注册位置更新。

据我了解,后台发生的任何事情都需要从 locationManager:didUpdateToLocation:fromLocation 调用,因为这是每次位置更新时调用的方法。

我遇到的问题是有时会停止调用。当用户的位置在大约 15 分钟左右的时间内没有发生太大变化时,就会发生这种情况。据我所知,对 locationManager:didUpdateToLocation:fromLocation 的调用会停止,大概是为了节省电池。不幸的是,当您重新开始移动时,它不会再次恢复。

我认为无法覆盖此行为,因此我想使用通知中心通知用户该应用程序不再记录路线。问题是,应用程序如何知道这已经发生了?如果未调用 locationManager:didUpdateToLocation:fromLocation ,我将无法触发通知。如果正在调用,则不应触发通知。

最佳答案

我认为没有任何方法可以通知位置管理器已停止向您发送事件,但有一种方法可以防止这种情况发生。 iOS 6 中添加了一项新功能,允许位置管理器在认为服务未被使用时关闭服务。如果您执行以下操作,位置管理器将继续在后台向您发送事件,直到您电量耗尽为止:

if ([self.locationManager respondsToSelector:@selector(pausesLocationUpdatesAutomatically)]) { self.locationManager.pausesLocationUpdatesAutomatically = NO; }

此外,在 iOS6 中,您应该使用 locationManager:didUpdateLocations:,因为 locationManager:didUpdateToLocation:fromLocation: 已弃用。

关于iphone - CLLocationManager 在后台停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15697001/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com