gpt4 book ai didi

ios - AFNetworking 2.0 是否支持后台任务? - IOS 7

转载 作者:可可西里 更新时间:2023-11-01 03:33:04 25 4
gpt4 key购买 nike

我正在使用带有 NSURLSession 的 Afnetworking 2.0 库。

我在 AFURLSessionManager 中发现他们使用默认 session 配置 Session,所以如果我需要在后台下载图像,那么我必须设置 Session with Background 配置。

所以,我必须为此更改 AFNetworking 库,或者在 AFNetworking 2.0 中是否有任何其他方法。

最佳答案

来自 Using NSURLSession :

The NSURLSession class supports background transfers while your app is suspended. Background transfers are provided only by sessions created using a background session configuration object (as returned by a call to backgroundSessionConfiguration:).

如果要执行此操作,则必须将 AFHTTPSessionManager 配置为使用后台 session 配置:

NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration backgroundSessionConfiguration:@"com.myApp.backgroundDownloadSession"]
AFHTTPSessionManager *backgroundManager = [[AFHTTPSessionManager alloc] initWithSessionConfiguration:configuration];

AFNetworking 将自己设置为代理。来自 NSURLSession 文档:

[T]he delegate will be retained until after the delegate has been sent the URLSession:didBecomeInvalidWithError: message

因此,只要本次 session 结束,您的经理就会留下来。

两个旁注:

  1. 您可能应该使用一个单独的 AFHTTPSessionManager 进行后台传输(大量下载等)。您不希望从字面上为所有请求分配一个后台 URL session 。

  2. 如果您想在没有 AFNetworking 的情况下检索响应,请注意后台 session 标识符是什么(我的示例代码中的“com.myApp.backgroundDownloadSession”):

    An identifier for the new session configuration that is unique for your app. Your app can retrieve the download or the upload response later by creating a new background session with the same identifier.

关于ios - AFNetworking 2.0 是否支持后台任务? - IOS 7,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20046965/

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