2015-09-06 2 views
0

Я пытаюсь понять, документ от Apple на фоне выполнения:IOS Фоновая Execution

После настройки, ваш объект NSURLSession легко загружать руки прочь и задачи загрузки в систему в нужное время. Если задачи завершают , пока ваше приложение все еще работает (либо на переднем плане, либо на фоне ), объект сеанса уведомляет своего делегата обычным способом . Если задачи еще не завершены, и система завершает ваше приложение , система автоматически продолжает управление задачами на фоне . Если пользователь завершает работу вашего приложения, система отменяет любые ожидающие задачи .

Когда все задачи, связанные с фоновой сессией, завершена, система запускается снова завершенному приложением (при условии, что свойство sessionSendsLaunchEvents было установлено в YES, и что пользователь не не заставит выйти из приложения) и вызывает app delegate приложение: handleEventsForBackgroundURLSession: completeHandler: метод. (Система может также перезапустить приложение для проверки подлинности вызовов или других событий, связанных с задачами, которые требуют внимания вашего приложения .) В вашей реализации этого метода делегата используйте предоставленный идентификатор для создания нового объекта NSURLSessionConfiguration и NSURLSession, той же конфигурации, что и раньше. Система повторно соединяет ваш новый объект сеанса с предыдущими задачами и сообщает свой статус делегату объекта сеанса.

Если я использую NSURLSession, поэтому, когда приложение переходит фон, когда процесс загрузки еще идти, процесс не будет убит или умер до тех пор, пока приложение не завершается пользователем (я предполагаю, что это, убить мое приложение из списка приложений)?

ответ

3

Внимательно прочитайте текст. Как и вся хорошая документация, в ней четко сказано, что это значит, и вам просто нужно внимательно ее прочитать.

Вы не читали его внимательно.

Существует три случая: ваше приложение все еще работает, когда задача завершается, ваше приложение было отключено системой, когда закончилась последняя задача, или пользователь закрыл приложение до завершения последней задачи. Нет, он не говорит нигде, что приложение остается в живых. И в документации четко говорится, что происходит в каждом случае.

iOS убивает приложения, которые находятся в фоновом режиме, и заставляет его смотреть на пользователя так, как будто они все еще работают.