繁体   English   中英

网络丢失,屏幕锁定解锁

[英]Network lost on screen lock unlock

使用简单的AFNetworking下载操作遇到了一个非常奇怪的问题,甚至尝试了简单的NSURLConnection操作,如果保持应用程序运行,则连接失败,然后锁定屏幕然后再解锁。 虽然在background工作正常。

任何人遇到NSURLConnection类似问题都想分享一些解决方案吗?

谢谢。

它看起来像一个iOS错误。 很奇怪,但是锁屏操作会以某种方式影响NSURLSession ,从而使其停止工作并返回NSURLErrorNetworkConnectionLost 因此,在我的应用程序中,我放弃了共享会话。 我要么为每个请求使用一个新的会话对象,要么(每次需要保持一个会话时)每次解锁屏幕时都重新创建它。 而且有效。 对于AFNetworking或在NSURLSession之上工作的任何其他第三方库的用户NSURLSession ,情况当然更难。 您需要更正库的代码,这绝对不是一件好事,但我认为别无选择

非常有用Andrey Chernukha在我的案例中,发现您不必每次都重新创建新会话。 我最终使用数组保存了正在运行的NSURLSessionDataTasks,并在手机解锁后恢复了它们。

脚步:

  1. 我创建了数组NSMutableArray * dataTasksToResume

  2. -(void)applicationWillResignActive:(UIApplication *)application我将所有任务保存到dataTasksToResume数组

  3. 取消所有正在运行的NSURLSessionDataTasks
  4. -(void)applicationDidBecomeActive:(UIApplication *)应用程序中,从数组中获取所有任务并恢复它们(重新创建它们)
  5. 请享用!

希望能帮助到你。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM