applicationWillTerminate задерживается, есть ли более быстрый метод для использования при выходе?

StackOverflow https://stackoverflow.com/questions/1412871

Вопрос

Я использую - (void) applicationWillTerminate: (NSNotification *) уведомление, чтобы сохранить данные при выходе из моей игры, а затем загрузить их, если пользователь в следующий раз нажмет кнопку загрузки. Сохранение и загрузка работают нормально, но я заметил, что между нажатием кнопки «Домой» и сохранением данных существует некоторая задержка. Всякий раз, когда я выходил, перезапускался и загружался, таймер игры продолжал тикать, и состояния менялись до вызова applicationWillTerminate; например игровые объекты в движении загружаются в разных местах, чем то, что я видел в последний раз, нажимая кнопку «домой». Интересно, что, если я быстро нажму кнопку «Домой» ... она, похоже, выйдет из приложения, и появятся элементы управления музыкой. Однако, если я выйду таким образом, когда загружу данные снова, таймер не продолжит работу - игровые объекты не будут двигаться с их скоростями. Есть ли способ обойти это?

Это было полезно?

Решение

Вы просматривали UIApplicationWillResignActiveNotification ? Что-то вроде следующего во время загрузки / инициализации в вашем «главном контроллере» или в подклассе UIApplication :

[[NSNotificationCenter defaultCenter] addObserver:self /* or whatever */ selector:@selector(applicationWillTerminate:) name:UIApplicationWillResignActiveNotification object:NULL];
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top