AppDelegate.m文件包含
{{1}}
我不知道为什么我在gdb中收到此消息
无法endBackgroundTask:没有带标识符的后台任务 1fd57580,或者它可能已经结束。打破 UIApplicationEndBackgroundTaskError()来调试。
答案 0 :(得分:3)
你的代码都错了。它应该是这样的:
UIBackgroundTaskIdentifier taskID = [application beginBackgroundTaskWithExpirationHandler:^{
// Code to ensure your background processing stops executing
// so it reaches the call to endBackgroundTask:
}];
// Put the code you want executed in the background here
if (taskID != UIBackgroundTaskInvalid) {
[[UIApplication sharedApplication] endBackgroundTask:taskID];
}
答案 1 :(得分:1)
如果您在后台使用位置更新,请在获取用户的位置授权时添加以下代码。这是因为Apple从iOS 9开始将allowsBackgroundLocationUpdates
的默认值更改为NO
。
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 9) {
locationManager.allowsBackgroundLocationUpdates = YES;
}