iOS7:后台任务(“myapp”在超出允许时间后有活动断言)

iOS7:后台任务(“myapp”在超出允许时间后有活动断言),第1张

概述崩溃报告详情: Hardware Model: iPhone5,2Exception Type: 00000020Exception Codes: 0x000000008badf00dHighlighted Thread: 3Application Specific Information:MyApp[1369] has active assertions beyond 崩溃报告详情:

HarDWare Model:      iPhone5,2Exception Type:  00000020Exception Codes: 0x000000008badf00dHighlighted Thread:  3Application 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.NSURLConnectionLoaderThread 3:0   libsystem_kernel.dylib          0x3937ea50 mach_msg_trap + 201   libsystem_kernel.dylib          0x3937e848 mach_msg + 362   CoreFoundation                  0x2e61261c __CFRunLoopServiceMachPort + 1523   CoreFoundation                  0x2e610d3c __CFRunLoopRun + 7884   CoreFoundation                  0x2e57b7a4 CFRunLoopRunspecific + 5205   CoreFoundation                  0x2e57b586 CFRunLoopRunInMode + 1026   Foundation                      0x2efbb23c +[NSURLConnection(Loader)     _resourceLoadLoop:] + 3167   Foundation                      0x2f030a0a __NSThread__main__ + 10588   libsystem_pthread.dylib         0x393f8956 _pthread_body + 1389   libsystem_pthread.dylib         0x393f88c6 _pthread_start + 9810  libsystem_pthread.dylib         0x393f6ae4 thread_start + 4

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

// 10min background taskuibackgroundtaskIDentifIEr 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:后台任务(“myapp”在超出允许时间后有活动断言)全部内容,希望文章能够帮你解决iOS7:后台任务(“myapp”在超出允许时间后有活动断言)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1008493.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存