/ / NSURLSession відновлюється з краху - ios, swift, download, nsurlsession

NSURLSession відновити після аварійного завершення, швидкого, завантаження, nsurlsession

Хто-небудь отримав будь-які поради про те, як знову підключитися до завантаження в NSURLSession після аварії.

Якщо моє додаток аварійно завершується, я вважаю, що завантаження продовжується на пристрої, а потім, коли мої програми відновлять, я можу використовувати той самий sessionID у:

NSURLSessionConfiguration.backgroundSessionConfiguration(sessionID)

Тим не менш, я повинен потім назвати "session.getTasksWithCompletionHandler", щоб побачити, чи є якісь завдання? Документи не зрозумілі.

Мій користувальницький інтерфейс має індикатор завантаження для кожного завантаження файлу, тому в ідеалі, коли я перезапущую програму, вона спробує відновити з'єднання і підключити прогрес назад до інтерфейсу.

На даний момент, що відбувається, я перезапускаю завантаження, і мій прогрес бар мерехтить, тому що є 2 завантаження в прогрес - старий і новий, а потім він отримує себе в стан ...

Відповіді:

0 для відповіді № 1

Добре ось що я знайшов, в Посібник із програмування системи URL:

В обох iOS і OS X, коли користувач перезапускаєтьсядодаток, додаток слід негайно створити фонові конфігураційні об'єкти з ті ж ідентифікатори, що і будь-які сесії, які мали невиконані завдання, коли ви Додаток останнього запуску, а потім створити сеанс для кожного з них об'єктів конфігурації. Ці нові сеанси аналогічні автоматично пов'язана з поточною фоновою діяльністю.

Тому, коли я знову створюю сеанс і підключаюДелегат, методи делегування знову починають стріляти, і я використовую getTasksWithCompletionHandler, щоб побачити, чи є якісь завдання, які виконуються, і повернути їх моєму інтерфейсу та іншій системі