2014-11-01 1 views
0

Почему мое приложение не приостанавливается сразу после завершения моей заданной задачи?Приложение не приостанавливается после завершения фонового задания

Приложение, работающее на iOS 8, использует задание на длительное время, чтобы избежать приостановки, когда оно входит в фоновый режим. Все хорошо. Когда задача будет завершена, приложение вызывает фоновый обработчик выполнения задачи:

 [[UIApplication sharedApplication] endBackgroundTask:backgroundTask]; 
     backgroundTask = UIBackgroundTaskInvalid; 

Однако вызов backgroundTimeRemaining возвращает 40 секундный интервал времени.

[[UIApplication sharedApplication] backgroundTimeRemaining] 

Действительно, приложение не приостанавливается в течение как минимум еще 20 секунд после окончания задачи.

  • Почему это происходит?
  • Будет ли приложение получать полное время выполнения?
  • Могу ли я ускорить приостановку приложения?

ответ

0

После отладки далее стало ясно, что backgroundTimeRemaining не обновляется сразу после завершения задачи. Приложение приостанавливается вскоре после этого, вероятно, после прокрутки цикла запуска. Вы не должны ожидать, что backgroundTimeRemaining будет точным в любое время.