jak*_*e85 3 objective-c location-based ios
崩溃报告详情:
Hardware Model: iPhone5,2
Exception Type: 00000020
Exception Codes: 0x000000008badf00d
Highlighted Thread: 3
Application Specific Information:
MyApp[1369] has active assertions beyond permitted time:
{(
<BKProcessAssertion: 0x175ca7d0> identifier: Called by MyApp, from -[AppDelegate applicationDidEnterBackground:] process: MyApp[1369] permittedBackgroundDuration: 180.000000 reason: finishTask owner pid:1369 preventSuspend preventIdleSleep preventSuspendOnSleep
)}
Run Code Online (Sandbox Code Playgroud)
线程3:
Thread 3 name: com.apple.NSURLConnectionLoader
Thread 3:
0 libsystem_kernel.dylib 0x3937ea50 mach_msg_trap + 20
1 libsystem_kernel.dylib 0x3937e848 mach_msg + 36
2 CoreFoundation 0x2e61261c __CFRunLoopServiceMachPort + 152
3 CoreFoundation 0x2e610d3c __CFRunLoopRun + 788
4 CoreFoundation 0x2e57b7a4 CFRunLoopRunSpecific + 520
5 CoreFoundation 0x2e57b586 CFRunLoopRunInMode + 102
6 Foundation 0x2efbb23c +[NSURLConnection(Loader) _resourceLoadLoop:] + 316
7 Foundation 0x2f030a0a __NSThread__main__ + 1058
8 libsystem_pthread.dylib 0x393f8956 _pthread_body + 138
9 libsystem_pthread.dylib 0x393f88c6 _pthread_start + 98
10 libsystem_pthread.dylib 0x393f6ae4 thread_start + 4
Run Code Online (Sandbox Code Playgroud)
我的应用程序在"applicationDidEnterBackground"使用此代码的后台任务:
// 10min background task
UIBackgroundTaskIdentifier myLongTask;
myLongTask = [[UIApplication sharedApplication]
beginBackgroundTaskWithExpirationHandler:^{
[locationMgrInstance timerSet];
}];
// cell change
[locationMgrInstance startMonitoringSignificantLocationChanges];
Run Code Online (Sandbox Code Playgroud)
它适用于iOS 6 ......但是!iOS 7在180秒后抛出断言.救命!
Pau*_*w11 11
此消息表明您的后台任务运行时间过长.iOS7改变了后台处理的某些方面.特别是后台任务应该在很短的时间内完成,如果没有,你的应用程序就会被终止.您需要了解后台任务的运行方式.特别是,您需要确保[[UIApplication sharedApplication] endBackgroundTask:task];及时打电话.您还应该在到期处理程序中调用此方法.
请查看Apple iOS App编程指南 后台执行指南中的后台执行和多任务部分.
此外,您可以检查[[UIApplication sharedApplication]backgroundTimeRemaining]- 在iOS 6上,这是从10分钟开始.在iOS 7中它从3分钟开始 - 这就是为什么你在180秒后超时的原因.您需要重新评估您的背景策略以处理新限制.