gpt4 book ai didi

iOS7 : background task ("myapp" has active assertions beyond permitted time)

转载 作者:可可西里 更新时间:2023-11-01 06:20:44 26 4
gpt4 key购买 nike

崩溃报告详情:

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
)}

线程 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

我的应用程序在“applicationDidEnterBackground”中使用此代码的后台任务:

// 10min background task
UIBackgroundTaskIdentifier myLongTask;
myLongTask = [[UIApplication sharedApplication]
beginBackgroundTaskWithExpirationHandler:^{
[locationMgrInstance timerSet];
}];
// cell change
[locationMgrInstance startMonitoringSignificantLocationChanges];

它在 iOS 6 上运行良好……但是! iOS 7 在 180 秒后抛出断言。帮助!

最佳答案

此消息表示您的后台任务运行时间过长。 iOS7 改变了后台处理的某些方面。特别是后台任务应该在短时间内完成,如果没有完成,您的应用程序将被终止。您需要查看后台任务的运行方式。特别是,您需要确保及时调用 [[UIApplication sharedApplication] endBackgroundTask:task];。您还应该在过期处理程序中调用此方法。

查看 中的后台执行和多任务处理部分 Apple iOS App Programming Guide Background Execution Guide .

此外,您可以检查 [[UIApplication sharedApplication]backgroundTimeRemaining] - 在 iOS 6 上,它从 10 分钟开始。在 iOS 7 中,它从 3 分钟开始——这就是为什么您会在 180 秒后超时。您需要重新评估您的后台策略以应对新的限制。

关于iOS7 : background task ("myapp" has active assertions beyond permitted time),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22679845/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com