从后台获取调用时,Alamofire 不工作

Posted

技术标签:

【中文标题】从后台获取调用时,Alamofire 不工作【英文标题】:Alamofire not working while called from background fetch 【发布时间】:2018-05-29 08:44:24 【问题描述】:

我在 ios 应用程序中使用后台获取来安排一些通知,我需要从服务器获取一些数据但是当我创建 Alamofire 请求时,surver 会返回数据但 alamofire 不会调用我的编译处理程序 (responseString)

当我的应用程序处于前台时,完全相同的代码可以完美运行。

Alamofire.request(url, method: method ?? HTTPMethod.get, parameters: parameters,
        encoding: encoding ?? URLEncoding.default, headers: headers)
        .responseString
        (afResponse : DataResponse<String>) -> Void in
    ....

我使用AlamofireNetworkActivityLogger 来检查创建和获取响应的天气,结果是真的。但是我的编译处理程序没有被调用!

在后台使用 Alamofire 时我还应该考虑其他什么?

【问题讨论】:

你有解决办法吗? 【参考方案1】:

您是否测试过它是否按照Alamofire network calls not being run in background thread 中的建议工作

我们可能不得不从后台线程而不是主线程开始调用(因为这是默认行为)。

【讨论】:

以上是关于从后台获取调用时,Alamofire 不工作的主要内容,如果未能解决你的问题,请参考以下文章

为我可以用来操作 JSON 的 Alamofire 创建回调

在后台接收静默推送时无法向 Alamofire 发出请求

正确使用 Alamofire 队列

从 alamofire swift 的 tableview 单元格中的 url 加载图像

使用 Alamofire 将文件保存到 .DocumentDirectory

为啥我无法从 Alamofire 获取请求结果