在后台iOS应用程序中运行func(),而不是排队?

时间:2016-12-05 16:49:30

标签: ios swift alamofire

我正在为用户使用Alamofire请求方法live(),但他们至少需要1小时下载。

我想在后台运行该方法。

但不是在返回应用程序后恢复的队列,而是在后台工作。

有没有办法使用任何库或框架在后台运行该方法?

2 个答案:

答案 0 :(得分:1)

系统类URLSession可以从后台下载文件。这可能是下载文件最简洁的方法。当您为后台下载创建URLSession时,系统会在下载完成时通知您,即使它必须重新启动您的应用程序也是如此。

您应该可以搜索“URLSession后台下载任务”以了解更多信息。有很多步骤,网上有很多教程解释如何做。

我不知道AlamoFire是否暴露了这种能力。

编辑:

似乎AlamoFire确实支持后台下载。看到这个链接:

AlamoFire Download in Background Session

答案 1 :(得分:-2)

应用程序有一种方法可以在后台永久运行,并且可以通过requestLocationUpdates()调用CoreLocation,但为此您需要得到Always Location的用户许可,您还需要把电池耗尽一点。除此之外,没有任何我知道的方法。