Это случай дополнительного использования, но это хороший вопрос.Вот, пожалуйста:
Я разрабатываю игру для iPhone, в которой мне нужно приостановить игру, когда происходят перерывы.Я использую обработчики прерываний applicationWillResignActive:
applicationDidEnterBackground:
applicationWillEnterForeground:
и applicationDidBecomeActive:
, чтобы приостановить и возобновить игру, сохранить прогресс в игре и т. Д., Как и следовало ожидать.
У меня возникли проблемы в следующем сценарии:
- Игра запущена, и я выполняю многозадачное прерывание (двойная кнопка home).
applicationWillResignActive:
называется, игра приостанавливается, все замечательно. - Затем, с открытой панелью многозадачности, я делаю тройное прерывание по домашнему щелчку (см. Настройки-> Общие-> Доступность-> Тройной дом нажмите и выберите 'Спроси вариант).Всплывающее окно опций перемещается поверх панели многозадачности, в приложении не вызываются обработчики прерываний.
- Я отменяю всплывающее окно опций.
applicationDidBecomeActive:
вызывается, игра возобновляется, пока панель многозадачности еще открыта.Это странно. - Я закрываю панель многозадачности другим двойным щелчком по кнопке home, обработчики прерываний не вызываются.
Что здесь происходит с Сэмом Хиллом ???Я видел другие игры (например, Spy Mouse), которые, кажется, правильно обрабатывают эту серию прерываний.Кто-нибудь знает, есть ли другой способ отлавливать системные события из ОС и, таким образом, иметь возможность обрабатывать прерывания с большей точностью?Это или я что-то упускаю очевидное?
Любая помощь или понимание будет принята с благодарностью.Заранее спасибо!