
问题:
>我可以想象我的应用程序在后台崩溃,因此没有
控制台日志是写的,你认为这是可能的吗?
>我是否必须以不同方式处理backgroundTask到期,例如通过
取消所有我的NSURLRequests? (见下面的代码)
背景
我经常在后台(或通过后台推送)醒来并运行这样的后台任务:
Nsstring *myTaskname = @"some.random.task.name";__block uibackgroundtaskIDentifIEr taskID = [UIApplication.sharedApplication beginBackgroundTaskWithname:myTaskname expirationHandler:^{ [UIApplication.sharedApplication endBackgroundTask:taskID]; taskID = uibackgroundtaskInvalID;}];dispatch_queue_t q = dispatch_get_global_queue(disPATCH_QUEUE_PRIORITY_DEFAulT,0);dispatch_async(q,// doing some NSURLRequests stuff here [UIApplication.sharedApplication endBackgroundTask:taskID]; taskID = uibackgroundtaskInvalID;}); 这通常在applicationDIDEnterBackground中调用
调用堆栈
Thread : Crashed: com.apple.NSURLConnectionLoader0 libobjc.A.dylib 0x183599b90 objc_msgSend + 161 CFNetwork 0x184513300 XTubeManager::withTubeManager(CoreSchedulingSet const*,voID (glueTubeManager*) block_pointer) + 962 CFNetwork 0x18451149c -[__NSURLSessionLocal _withConnectionCache_enqueueRequest:forProtocol:scheduling:options:] + 1283 CFNetwork 0x1845c3798 httpProtocol::asynchronouslyCreateAndOpenStream_WithMessage_AftercookiesAndAuthenticatorheaders(__CFhttpMessage*) + 20004 CFNetwork 0x1845c2ef8 httpProtocol::asynchronouslyAddAuthenticatorheadersAndContinue(__CFhttpMessage*) + 1445 CFNetwork 0x1845c4ba4 ___ZN12httpProtocol35asynchronouslyAddcookiesAndContinueEP15__CFhttpMessage_block_invoke_2 + 286 libdispatch.dylib 0x18396d47c _dispatch_clIEnt_callout + 16解决方法 NSURLConnection堆栈内的一些对象正在消失.有些事要检查:
>确保您没有两次启动连接. (如果你不使用… startImmediately:NO,那么请确保你从不打电话给start.)
>确保在连接完成之前未启动连接,然后释放最后一个引用.
>确保您没有使用同步NSURLConnection调用(曾经).
除此之外,我之前见过类似的崩溃,在很多情况下,没有明显的原因.除非您看到频繁发生崩溃,否则可能没有任何方法可以修复它,除了提交错误并希望Apple找到一种方法来解决它.
总结以上是内存溢出为你收集整理的ios – XTubeManager在后台崩溃?全部内容,希望文章能够帮你解决ios – XTubeManager在后台崩溃?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)