ios - 我如何知道后台正在运行哪些任务?

标签 ios cocoa-touch uibackgroundtask

我正在尝试在我的应用程序中实现一个看似常见的功能:在后台上传文件。我通过调用 -[UIApplication beginBackgroundTaskWithExpirationHandler:] 运行此类任务,因此这些任务均由 UIBackgroundTaskIdentifier 标识。

请看下图。橙色框是我似乎无法找到任何答案的问题点。

enter image description here

以下是我寻求指导的问题:

是否可以获取同一应用在上一个 session 中启动的正在运行的任务列表?

是否可以将某种元数据(例如 URL 字符串)与后台任务相关联,以便我们知道哪个任务正在上传哪个文件?

最佳答案

您使用的是 NSURLConnection 还是 NSURLSession

如果NSURLSession,可以使用getTasksWithCompletionHandler。您还可以使用后台 NSURLSessionConfiguration,而不是依赖于 beginBackgroundTaskWithExpirationHandler。在跟踪请求方面,您可以从任务中检索 originalRequest(并从中检索 URL),或者使用 taskIdentifier 更新您的模型NSURLSessionTask,并以这种方式在您自己的模型中交叉引用请求。

关于ios - 我如何知道后台正在运行哪些任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23876297/

相关文章:

ios - 如何更改标准 UITabBarItem 上的文本 'More'

iphone - 应用程序在前台时的 UILocalNotifications

swift - 尝试实现 beginBackgroundTaskWithExpirationHandler 和 UILocalNotification

objective-c - 使用 UIImagePickerController 录制视频并达到 videoMaximumDuration 时更改 UIAlertView 的文本

objective-c - 以编程方式设置 NSIndexPath

iphone - UIScrollView 中具有 pagingEnabled 的页面之间类似照片应用程序的间隙

ios - 在后台执行游戏中的评分任务 Objective-c

ios - Swift 函数范围 - 引用 self (意味着 "self as the enveloping function")

ios - 未找到 Bitrise.io 方案

ios - 当应用程序在后台被杀死时删除数据。