我有一个在前台运行良好的应用程序。我想让它能够在后台跟踪位置。但是,它不会推迟更新。
这里的长度是由于试图回答类似帖子中提出的问题:
我已经获得了pinfo设置,允许应用程序进入后台而不会崩溃。
在进入后台之前,我打电话给:
[locationManager allowDeferredLocationUpdatesUntilTraveled:CLLocationDistanceMax timeout:CLTimeIntervalMax] ;
但是这个委托函数会被立即调用:
- (void)locationManager:(CLLocationManager *)manager
didFinishDeferredUpdatesWithError:(NSError *)error
{
if (error)
{
NSLog (@"Error deferring updates: %@", error) ;
}
return ;
}
显示:
错误Domain = kCLErrorDomain Code = 14“无法完成操作。(kCLErrorDomain错误14。)”
然后使用
继续进行位置处理 - (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations
在后台调整每个位置时调用。
我也看到这条消息被写入日志,但不知道它来自哪里:
快照未呈现的视图会导致空快照。确保在屏幕更新后快照或快照之前,您的视图至少呈现过一次。
我没有在应用中明确拍摄任何快照。
(测试设备是iPad Air II,IOS 6)。
虽然我无法推迟更改位置?
答案 0 :(得分:0)
我认为你的CLLocationManager对象是本地对象,它会在超出范围后立即被释放。 您可以尝试将其设置为类属性,然后请求授权和确定位置等异步进程将有机会运行。