我在新应用中使用Alamofire(基于Alamofire的下载管理器示例)
我需要一些有关使用后台 session 下载文件的说明。
我需要重写SessionDelegate才能使其正常工作?
还是只是backgroundCompletionHandler

通常,使用Alamofire在后台处理下载的步骤是什么?
以及如何处理我的应用程序重新启动,下载量不断增加的情况。

最佳答案

更新

基于this amazing tutorial,我整理了一个在GitHub上可用的示例项目。它有一个后台 session 管理的例子。

根据苹果公司的URL Loading System Programming Guide:



因此,显然,通过使用适当的后台 session 配置实例,您的下载将永远不会“不断变化”。

我还发现this answer真的很有帮助。

原始答案

从Alamofire的GitHub page:



默认情况下,顶级方法使用具有默认 session 配置的共享Manager实例。但是,您可以创建具有后台 session 配置的管理器,如下所示:

let configuration = NSURLSessionConfiguration.backgroundSessionConfigurationWithIdentifier("com.example.app.background")
let manager = Alamofire.Manager(configuration: configuration)

然后,您可以使用此Manager实例发出请求。
manager.startRequestsImmediately = true
let request = NSURLRequest(URL: NSURL(string: "your.url.here")!)
manager.request(request)

通过查看其实现,它还具有一个名为backgroundCompletionHandler的属性,因此您可以添加一个完成块:
manager.backgroundCompletionHandler = {
        // do something when the request has finished
    }

10-07 13:13
查看更多