在这个问题上有点困惑,所以我把它分解成了一个测试应用程序。
简单的单例处理locationManager。我已经打开了定位支持在后台的能力。地图也已启用。
--位置管理器--一直在运行,但一旦我将应用程序放到后台,它就会暂停。
我读过很多关于人们试图在后台启动位置经理的帖子,但我的已经在运行了。我认为,通过在功能下启用它,它将继续在后台运行。一旦应用程序恢复,位置管理器也会恢复。
我需要开始寻找beginBackgroundTaskWithExpirationHandler吗?
更新
代码工作在7.06而不是7.1.1?他们改变了什么?
发布于 2014-04-30 12:22:14
我相信您必须设置您的应用程序背景模式,以允许位置更新。要做到这一点,请编辑应用程序.plist文件,并将“位置”添加为“必需的后台模式”,请参阅Apple获取更多背景模式(在这里)
发布于 2014-04-30 12:23:53
在appDelegete.m中
- (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;
}它现在起作用了
https://stackoverflow.com/questions/23387792
复制相似问题