ios - 当应用程序移至后台时如何使 URLSession 工作

标签 ios swift background urlsession nsurlsessiondatatask

单击按钮时,我必须执行多个 API 调用以获取数据并将该数据写入文件。我正在使用 Operation Queue 和 URLSession datatask 来实现它。当此 API 调用正在进行时,如果通过单击主页按钮或通过电话将应用程序置于后台,则不会处理 API 调用。

我尝试了 Operation queue 以及 Dispatch_async() 函数,但是在调用 API 调用后将应用程序置于后台时没有任何效果。

API 请求甚至应该在应用程序置于后台时工作。如何实现?

最佳答案

如果您正在使用 datatask,那么您可以实现 backgroundTask,这在 https://medium.com/@abhimuralidharan/finite-length-tasks-in-background-ios-swift-60f2db4fa01b 中有很好的解释。

如果你正在使用 DownloadTask 或 UploadTask ,你可以使用配置

URLSessionConfiguration.background(withIdentifier:
                                   "com.yourapp.bundleidentifier")

关于ios - 当应用程序移至后台时如何使 URLSession 工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57784097/

相关文章:

ios - IBOutlet 不在 UI 中显示其值

ios - TableView 在单元格上滚动时创建多个accessoryType

android - 应用程序如何只供用户读取并且只有管理员有权发布(使用 firestorm 数据服务器)

ios - NavigationBar 后退按钮行为异常且无法正常工作

swift - 圆角白色背景框架

java - 使用 Swing 将背景图像添加到 JFrame

iphone - 覆盖方法语法 ios

ios - viewController 没有被正确删除?

java - 设置 JTextPane 的背景会导致视觉效果 (Java)

javascript - d3.js 中的奇怪 "initial"值