我必须保持在后台运行的GPS有问题。
我succeded保持GPS运行时,应用程序在后台,但它有时会停止。 我注意到,当我在大楼进入,我在那里呆上2-3个小时停止。 “停止”的意思是我没有收到任何GPS点,即使位置服务图标还亮着。 后来,当我出去,直到我把我的应用前景,我不接受任何点。
我的pausesLocationUpdatesAutomatically属性设置为NO。
所以,直到我进入一个与GPS信号弱的位置,一切工作正常。 当我走出那个区域,我不收点了,即使我应该,因为GPS信号是现在好了。
这里是我的代码时,应用程序在后台进入:
- (void)applicationWillResignActive:(UIApplication *)application
{
NSLog(@"[AppDelegate]: Application entering in background!");
if(doesUserWantGPSTracking)
{
[self stopGPS];
UIApplication *app = [UIApplication sharedApplication];
bgTask = [app beginBackgroundTaskWithExpirationHandler:
^{
dispatch_async(dispatch_get_main_queue(),
^{
if( bgTask != UIBackgroundTaskInvalid )
{
[app endBackgroundTask:bgTask];
bgTask = UIBackgroundTaskInvalid;
}
});
}];
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0),
^{
[self startGPS];
dispatch_async(dispatch_get_main_queue(), ^{
if( bgTask != UIBackgroundTaskInvalid )
{
[app endBackgroundTask:bgTask];
bgTask = UIBackgroundTaskInvalid;
}
});
});
}
}