Ваш код действителен, у меня работает. А блокировка экрана или нажатие кнопки «Домой» приведут к отправке этого уведомления.
* (Одно предостережение: если ваше устройство не поддерживает многозадачность или если для вашего свойства Application does not run in background
установлено значение «*1003*». В этом случае оно перейдет прямо к «UIApplicationWillTerminateNotification
». "уведомление"
Так, за исключением того, что есть две возможности:
1) Ваш код addObserver
не вызывается, т.е. Это неверный метод.
Для проверки попробуйте это:
UIApplication *app = [UIApplication sharedApplication];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(applicationWillResignActive:)
name:UIApplicationWillResignActiveNotification
object:app];
NSLog(@"Observer added");
2) Метод наблюдателя вызывается неправильно. Для чего требуется тот же метод, что и в селекторе.
Для проверки попробуйте это:
-(void)applicationWillResignActive:(NSNotification *)notification{
NSLog(@"applicationWillResignActive");
}
- В качестве дополнительного пункта, если вы хотите увидеть в действии, какое из этих уведомлений вызывается и когда. В вашем классе AppDelegate поместите строку
NSLog(@"%@", NSStringFromSelector(_cmd));
в каждый из -application...
методов, и он будет регистрировать их при вызове. Это хороший способ познакомиться с ними.