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