【发布时间】:2013-03-29 03:46:30
【问题描述】:
我有一个应用程序,它使用CLLocationManager 来跟踪用户的路线,沿着所走的路径绘制点。应用程序使用必需的后台模式在后台运行 > 应用程序注册位置更新。
据我了解,后台发生的任何事情都需要从 locationManager:didUpdateToLocation:fromLocation 调用,因为这是每次位置更新都会调用的方法。
我遇到的问题是,有时这会停止调用。当用户的位置在大约 15 分钟左右的时间内没有太大变化时,似乎会发生这种情况。据我所知,对locationManager:didUpdateToLocation:fromLocation 的呼叫只是停止,大概是为了节省电池。不幸的是,当您重新开始移动时,它不会再次恢复。
我认为无法覆盖此行为,因此我想使用通知中心通知用户该应用不再记录路线。问题是,应用程序如何知道发生了这种情况?如果未调用 locationManager:didUpdateToLocation:fromLocation,我将无法触发通知。如果正在调用它,则不应触发通知。
【问题讨论】:
-
我有这个确切的问题。当用户在 15 分钟内没有移动,并且在将应用程序保持在后台时再次开始移动时,不会调用 locationManager:didUpdateLocations。如果用户将应用放回前台,则调用 locationManager:didUpdateLocations,但它不包含用户开始移动到他将应用放回前台之间的所有先前位置。
标签: iphone ios core-location cllocationmanager