延迟位置更新问题ios

Son*_* VR 2 iphone ios

我一直在尝试在过去两天在应用中实施延迟位置更新.我面临的问题是

- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations
Run Code Online (Sandbox Code Playgroud)

即使在我调用之后,方法也会被调用

 [self.locMgr allowDeferredLocationUpdatesUntilTraveled:(CLLocationDistance)200 timeout:(NSTimeInterval)25];
Run Code Online (Sandbox Code Playgroud)

方法.

虽然我不得不说

 - (void)locationManager:(CLLocationManager *)manager didFinishDeferredUpdatesWithError:(NSError *)error
Run Code Online (Sandbox Code Playgroud)

在我的allowDeferredLocationUpdatesUntilTraveled方法指定的25秒之后完全调用,错误代码= null.

我从文档中了解到,仅在25秒后才会调用didUpdateLocations.任何帮助将非常感激.

Col*_*ips 5

我一直在努力解决同样的问题,我可能已经找到了一个解决这个问题的答案 - 至少它解决了我的问题,并得到延期更新一直为我工作.我按照上面列表中的所有步骤操作,无论我做什么,位置更新都不会推迟.在我看来,我可能有其他运行的应用程序不允许系统睡眠,所以我杀了多任务托盘中的所有其他应用程序.我再次运行我的示例应用程序......它工作了!但故事并没有就此结束.我稍后再试一次,即使多任务托盘中没有其他应用程序运行,我也无法获得推迟的位置服务.然后我发现我的手机上有一个名为"Moves"的应用程序,即使你手动杀死它也能保持活着.我不完全确定当你杀死Move时神奇地恢复生命,但确实如此(可能使用蓝牙和应用程序保存/恢复服务).即使它处于活动状态并跟踪您的位置,它也不会出现在多任务托盘中.我认为只有手动启动的应用程序会出现在托盘中 - 如果操作系统启动应用程序,它不会出现在托盘中.但是我离题了...我能够通过禁止Moves使用位置服务来获得延期位置服务以在我的应用程序中一致地工作.当我这样做时,Moves抱怨,即使它不在多任务托盘中.似乎如果另一个应用程序正在使用位置服务(而不是推迟),您的应用程序也不会推迟.