遇到一个非常奇怪的问题,使用简单的AFNetworking
下载操作,即使尝试使用简单的NSURLConnection
操作,如果您保持应用程序运行,并且锁定屏幕然后解锁,连接也会失败。尽管在background
中工作得非常好。
任何人遇到与NSURLConnection
类似的问题想要分享一些解决方案吗?
感谢。
答案 0 :(得分:1)
它看起来像是一个iOS错误。奇怪的是,锁屏操作会以某种方式影响NSURLSession
,以便它停止工作并返回NSURLErrorNetworkConnectionLost
。所以在我的应用程序中,我放弃了使用共享会话。我要么为每个请求使用一个新的会话对象,要么(如果我需要不断维护一个会话)每次屏幕解锁时重新创建它。它有效。对于AFNetworking
或在NSURLSession
之上工作的任何其他第三方图书馆的用户来说,情况当然更难。您需要更正库的代码,这绝对不是一件好事,但我认为没有其他选择
答案 1 :(得分:0)
非常有帮助Andrey Chernukha, 在我的情况下,发现你不必每次都需要重新创建新的会话。 我最终使用数组来保存运行NSURLSessionDataTasks并在手机解锁后恢复它们。
步骤:
我创建了数组 NSMutableArray * dataTasksToResume
在 - (void)applicationWillResignActive:(UIApplication *)应用程序我将所有任务保存到 dataTasksToResume 数组
希望它有所帮助。