Как я могу узнать, какие задачи выполняются в фоновом режиме?

Я пытаюсь реализовать, казалось бы, общую функцию в моем приложении: загружать файлы в фоновом режиме. Я запускаю такие задачи, звоня -[UIApplication beginBackgroundTaskWithExpirationHandler:]таким образом, каждая из этих задач определяется UIBackgroundTaskIdentifier,

Пожалуйста, посмотрите на диаграмму ниже. Оранжевые прямоугольники - это проблемные моменты, на которые я не могу найти никакого ответа.

Вот вопросы, к которым я обращаюсь:

Можно ли получить список запущенных задач, которые одно и то же приложение инициировало в предыдущем сеансе?

Можно ли связать какие-либо метаданные, например строку URL, с фоновой задачей, чтобы мы могли знать, какая задача загружает какой файл?

1 ответ

Решение

Ты используешь NSURLConnection или же NSURLSession?

Если NSURLSession, ты можешь использовать getTasksWithCompletionHandler, Вы также можете использовать фон NSURLSessionConfigurationвместо того, чтобы полагаться на beginBackgroundTaskWithExpirationHandler, И это условия отслеживания запросов, вы можете получить originalRequest из задачи (и получить URL-адрес из этого), или обновите модель с помощью taskIdentifier для NSURLSessionTaskи перекрестные ссылки в вашей собственной модели таким образом.

Другие вопросы по тегам