applicationWillTerminate: не вызывается

Я использую applicationWillTerminate: чтобы сохранить некоторые вещи в последнюю минуту. Но проблема в том, что его никогда не вызывают. Если я сделаю что-то вроде этого в верхней части метода: NSLog(@"Something"); он не вызывается и не выводится на консоль.

Кто-нибудь знает, почему это происходит?

4 ответа

Из документов Apple:

Для приложений, которые не поддерживают фоновое выполнение или связаны с iOS 3.x или более ранней версией, этот метод всегда вызывается, когда пользователь выходит из приложения. Для приложений, которые поддерживают фоновое выполнение, этот метод обычно не вызывается, когда пользователь выходит из приложения, потому что в этом случае приложение просто переходит в фоновый режим. Однако этот метод может быть вызван в ситуациях, когда приложение работает в фоновом режиме (не приостановлено), и система должна по какой-то причине прекратить его.

Если в вашем приложении включен фон, используйте:

- (void)applicationDidEnterBackground:(UIApplication *)application

Использование applicationDidEnterBackground: вместо. Приложения не закрываются при нажатии кнопки "Домой" в многозадачной системе.

Шаг 1: команда + Shift + H (двойной щелчок (вкладка))

шаг 2: переместить верхнюю часть приложения (убить)

шаг 3: applicationWillTerminate Work

Из Руководства по программированию приложений для iOS по разработке базовых приложений и времени их жизни:

ApplicationWillTerminate: метод не вызывается, если ваше приложение в данный момент приостановлено.

Если вы ссылаетесь на iOS 4.0, вам также следует сохранить данные в applicationDidEnterBackground:,

Другие вопросы по тегам