2015-05-17 4 views
1

Итак, у меня есть NSTimer, который установлен для вызова селектора каждой секунды:селектора NSTimer продолжает вызывалась даже в фоновом режиме

 timer = [NSTimer scheduledTimerWithTimeInterval:1.0f 
               target:self 
               selector:@selector(TimerSelector:) 
               userInfo:nil 
               repeats:YES ]; 

Это все хорошо, но с тех пор я обновил до прошивки 8, I «Мы заметили, что этот селектор продолжает получать вызов даже после того, как приложение переходит на задний план. Я думал, что это в конечном итоге перестанет работать, так как я полагаю, что приложение iOS не может запускаться в фоновом режиме без причины, но селектор продолжал получать вызовы. Я попытался сохранить приложение и имитировать предупреждения о памяти, но селектор продолжал звонить более 6 часов.

Это поведение было проявлено только в iOS 8, а не в iOS 7. Это нормально? Неужели iOS 8 принес что-то новое, о котором я не знаю?

+0

Я не понял, что вы ожидаете .. вы ожидаете, что не работаете в фоновом режиме, поэтому, если он работает в фоновом режиме, сделайте контрольное времяSelector, если приложение находится на переднем плане, не выполняйте тело timeselector – shujatAli

+0

Есть ли у вас какие-либо другие процессы целенаправленно работает в фоновом режиме? –

+0

Подключен к Xcode? Вы должны отключить таймер, когда приложение все равно идет на задний план ... – Wain

ответ

2

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

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

В IOS 8 тренажера, однако, есть хорошо известная ошибка (Apple показывает осведомленность о нем в Dev Форумов сообщений с ноября по декабрь 2014 года): задачи продолжают работать и не приостанавливаются, когда приложение в фоновом режиме , Не обращай внимания! Симулятор - всего лишь симулятор. Сделайте свое реальное тестирование на устройстве.

+0

Я напишу отчет об ошибке с Apple, если хотите. – matt

+0

Ой, нет, не буду. Оказывается, это известная ошибка. См. Это сообщение: https://devforums.apple.com/message/1087348#1087348 И дело не только в таймерах; это весь бизнес задач в целом. Я изменю свой ответ, чтобы упомянуть об этом. – matt

+0

Я не совсем уверен, но я не помню, как это происходило в симуляторе на iOS 7, поэтому я подумал, что что-то не так. Благодаря! – Malfunction

Смежные вопросы