我正在尝试在我的应用程序中实现一个看似常见的功能:在后台上传文件。我通过调用 -[UIApplication beginBackgroundTaskWithExpirationHandler:]
运行此类任务,因此这些任务均由 UIBackgroundTaskIdentifier
标识。
请看下图。橙色框是我似乎无法找到任何答案的问题点。
以下是我寻求指导的问题:
是否可以获取同一应用在上一个 session 中启动的正在运行的任务列表?
是否可以将某种元数据(例如 URL 字符串)与后台任务相关联,以便我们知道哪个任务正在上传哪个文件?
最佳答案
您使用的是 NSURLConnection
还是 NSURLSession
?
如果NSURLSession
,可以使用getTasksWithCompletionHandler
。您还可以使用后台 NSURLSessionConfiguration
,而不是依赖于 beginBackgroundTaskWithExpirationHandler
。在跟踪请求方面,您可以从任务中检索 originalRequest
(并从中检索 URL),或者使用 taskIdentifier
更新您的模型NSURLSessionTask
,并以这种方式在您自己的模型中交叉引用请求。
关于ios - 我如何知道后台正在运行哪些任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23876297/