iOS 4.3.1 ошибка поведения applicationWillResignActive? - PullRequest
0 голосов
/ 13 апреля 2011

В документации Apple для этого события указано:

Этот метод вызывается, чтобы сообщить приложению, что оно собирается перейти из активного в неактивное состояние.Это может произойти для определенных типов временных прерываний (таких как входящий телефонный звонок или SMS-сообщение) или когда пользователь выходит из приложения и начинает переход в фоновое состояние. Приложение в неактивном состоянии продолжает работать, но не отправляет входящие события респондентам.

Я вижу поведение, которое не соответствует последнему предложению.Если я запускаю приложение в отладчике XCode, которое собирает и регистрирует данные в ответ на срабатывание таймера, сбор и регистрация данных продолжаются бесконечно, если я нажимаю кнопку «Режим сна / Пробуждение», чтобы перевести устройство в спящий режим.

, если я запускаю приложение «нормально» (т. е. не в отладчике XCode), то сбор данных и ведение журнала прекращаются практически сразу после того, как устройство переходит в режим сна.

Документы Apple также говорят (выделено мое)

Этот метод следует использовать для приостановки текущих задач, отключения таймеров и снижения частоты кадров OpenGL ES.

Но на самом деле не объясняет, почему таймеры должныбыть отключенным.

Я пытаюсь выяснить, является ли наблюдаемое поведение (кажется, что неактивное состояние останавливает мой таймер и / или, возможно, все приложение) ошибкой или нет, или документы ошибочны в отношении приложенияработает в неактивном состоянии, или почему поведение приложения в отладчике отличается от поведения в «реальном мире».

Любая помощь или разъяснение приветствуются.

Ответы [ 2 ]

0 голосов
/ 13 апреля 2011

Я (наконец-то!) Нашел ветку, которая, кажется, объясняет то, что я вижу:

Что происходит с приложением iPhone, когда iPhone переходит в режим ожидания?

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

Если устройство не подключено, то через короткое время после блокировки экрана (около 20 секунд) устройство отключается: вся деятельность на основном процессоре останавливается.

Итак, Apple docsне ошиблись, просто неполны, не указав происходящий переход неактивный -> спящий.

(Должен ли я удалить этот вопрос?)

0 голосов
/ 13 апреля 2011

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

...