Ответ 1
Когда приложение неактивно, но все же на переднем плане (например, когда пользователь получает push-уведомление или нажимает кнопку ожидания), ваше приложение все еще работает полностью. Все созданные вами таймеры, которые вы не остановите, будут срабатывать как обычно. Однако, когда ваше приложение переходит в фоновый режим, если вы не зарегистрированы для запуска фонового потока, все выполнение останавливается. Если пришло время запуска таймера, это не произойдет, потому что цикл выполнения не запущен. Однако, когда ваша заявка возобновляется, все таймеры, которые должны были срабатывать, когда они были в фоновом режиме, будут немедленно запущены. Apple предлагает выполнить очистку в applicationWillResignActive
, чтобы вы не выполняли много работы, когда пользователь не фокусировался на вашем приложении, но вы определенно хотите отключить таймеры перед тем, как идти в фоновый режим, чтобы они не запускали один за другим другой, когда ваша заявка будет вновь открыта.