Как я могу узнать, какие задачи выполняются в фоновом режиме?
Я пытаюсь реализовать, казалось бы, общую функцию в моем приложении: загружать файлы в фоновом режиме. Я запускаю такие задачи, звоня -[UIApplication beginBackgroundTaskWithExpirationHandler:]
таким образом, каждая из этих задач определяется UIBackgroundTaskIdentifier
,
Пожалуйста, посмотрите на диаграмму ниже. Оранжевые прямоугольники - это проблемные моменты, на которые я не могу найти никакого ответа.
Вот вопросы, к которым я обращаюсь:
Можно ли получить список запущенных задач, которые одно и то же приложение инициировало в предыдущем сеансе?
Можно ли связать какие-либо метаданные, например строку URL, с фоновой задачей, чтобы мы могли знать, какая задача загружает какой файл?
1 ответ
Ты используешь NSURLConnection
или же NSURLSession
?
Если NSURLSession
, ты можешь использовать getTasksWithCompletionHandler
, Вы также можете использовать фон NSURLSessionConfiguration
вместо того, чтобы полагаться на beginBackgroundTaskWithExpirationHandler
, И это условия отслеживания запросов, вы можете получить originalRequest
из задачи (и получить URL-адрес из этого), или обновите модель с помощью taskIdentifier
для NSURLSessionTask
и перекрестные ссылки в вашей собственной модели таким образом.