Вот как слушать такие события:
// Register for notification when the app shuts down
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(myFunc) name:UIApplicationWillTerminateNotification object:nil];
// On iOS 4.0+ only, listen for background notification
if(&UIApplicationDidEnterBackgroundNotification != nil)
{
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(myFunc) name:UIApplicationDidEnterBackgroundNotification object:nil];
}
// On iOS 4.0+ only, listen for foreground notification
if(&UIApplicationWillEnterForegroundNotification != nil)
{
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(myFunc) name:UIApplicationWillEnterForegroundNotification object:nil];
}
Примечания: В if(&SomeSymbol)
проверке убедитесь, что ваш код будет работать на прошивке 4.0+, а также на IOS 3.x - если вы строите против iOS 4.x или 5.x SDK и установить цель развертывания для iOS 3.x, ваше приложение все равно может работать на устройствах 3.x, но адрес соответствующих символов будет равен нулю, и поэтому он не будет пытаться спросить для уведомлений, которые не существуют на устройствах 3.x (что приведет к сбою приложения).
Update: В этом случае if(&Symbol)
чеки теперь избыточно (если вы действительно не нужно поддерживать IOS 3 по какой-то причине). Однако полезно знать этот метод для проверки наличия API перед его использованием. Я предпочитаю этот метод, чем тестирование версии ОС, потому что вы проверяете, присутствует ли конкретный API, а не используют внешние знания о том, какие API-интерфейсы присутствуют в версиях ОС.
спасибо за быстрый ответ! –