稍微混淆了这个,所以我把它分解为测试应用程序。
简单的单例处理locationManager。我已经在功能背景下打开了位置支持。地图也已启用。
位置管理器一直在运行但是只要我将应用程序放到后台,它就会暂停。
我已经阅读了很多关于人们试图在后台启动位置管理器的帖子,但我的已经在运行了。我假设通过在功能下启用它,它将继续在后台运行。应用程序恢复后,位置管理员也会恢复。
我是否需要开始寻找beginBackgroundTaskWithExpirationHandler?
更新
代码适用于7.06而不是7.1.1?他们改变了什么?
答案 0 :(得分:2)
我认为您必须设置应用程序后台模式以允许位置更新。要执行此操作,请编辑您的应用.plist文件并添加" location"作为"所需的背景模式"有关更多背景模式(here)
,请参阅Apple文档答案 1 :(得分:1)
- (void)applicationDidEnterBackground:(UIApplication *)application
{
[locationmanger startUpdatingLocation];//start your location update method here
//then add this code
backgroundTask = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{
[self endBackgroundTask];
}];
}
-(void) endBackgroundTask
{
[[UIApplication sharedApplication] endBackgroundTask:backgroundTask];
backgroundTask = UIBackgroundTaskInvalid;
}
它现在可以使用