Обложка канала

iOS Dev

iOS разработчик, который делится фишками, своим опытом и опытом других. В этом канале вы сможете найти истории из жизни, подходы к реализации а также новости и тренды из мира iOS-разработки Авторский канал, iOS разработка

iOS Dev

4 года назад
Открыть в
Загрузка файлов в фоновом режиме с помощью URLSessionDownloadTask 📖 В этой статье демонстрируется, как использовать URLSessionDownloadTask для загрузки файлов в фоновом режиме, чтобы они могли быть завершены, даже если приложение завершено. Фактически загрузка будет выполняться системой вне процесса приложения, поэтому он продолжится, когда приложение закрыто. Это будет справедливо и для загрузки файлов с помощью URLSessionUploadTask. В примере также показано, как реализовать мониторинг выполнения для нескольких параллельно выполняющихся задач. Важные моменты Если приложение будет приостановлено (процесс приложения будет завершен) во время загрузки, а затем снова запущено, если загрузка все еще активна, вы сможете обратиться к URLSession с тем же идентификатором, и снова будут поступать уведомления о ходе загрузки. Но если задача завершена, а приложение не запущено, система запустит приложение в фоновом режиме и вызовет метод AppDelegate handleEventsForBackgroundURLSession. Это единственный способ получить уведомление о такой загрузке: class AppDelegate: UIResponder, UIApplicationDelegate { func application(_: UIApplication, handleEventsForBackgroundURLSession identifier: String, completionHandler: @escaping () -> Void) { os_log("handleEventsForBackgroundURLSession for %@", type: .info, identifier) completionHandler() } } 💡 Это сложно дебажить, но можно подключиться через Debug > Attach to Process by PID or Name. Тогда ситуация с отладкой станет проще. @iOS Dev