Как реагировать на applicationWillResignActive откуда угодно?

Какой код для подписки на событие, подобное applicationWillResignActive, в любом месте вашего приложения для iphone?

[ОБНОВИТЬ]

Позвольте мне перефразировать свой вопрос. Я не хочу отвечать на это в своем делегате приложения, а лучше слушать это событие из другого класса. Возможно ли это, или мне нужно передать событие от делегата приложения соответствующему классу?

Ответов (4)

Решение

Похоже, вы ищете этот код.

- (void) applicationWillResign {
    NSLog(@"About to lose focus");
}

- (void) myMethod { 
    [[NSNotificationCenter defaultCenter]
        addObserver:self
        selector:@selector(applicationWillResign)
        name:UIApplicationWillResignActiveNotification 
        object:NULL];
}

Ваша тема и вопрос задают несколько разные вещи.

Ваше приложение автоматически получит applicationWillResignActive вместе с applicationWillTerminate. Подписка не требуется, просто реализуйте функцию в своем приложении.

Что касается того, как реагировать, это зависит от приложения. Хотя вы можете не делать ничего, рекомендуемое поведение заключается в том, что вы прекращаете или замедляете выполнение любых некритических функций. Например, если бы вы были игрой, вы бы перестали обновлять дисплей и / или приостановили бы игру.

Реализуйте приведенный ниже метод в делегате приложения:

-(void)applicationWillResignActive:(UIApplication *)application

Это позволяет вам реагировать, когда приложение становится неактивным - в этом случае оно выполняет, но не отправляет входящие события. Это происходит, например, при появлении всплывающего окна или при заблокированном устройстве.

Непосредственно перед тем, как стать неактивным, приложение также отправляет UIApplicationWillResignActiveNotification.

Взгляните на документацию по методу, о котором вы говорите:

applicationWillResignActive:

Сообщает делегату, что приложение станет неактивным. Этот метод не является обязательным.

- (void)applicationWillResignActive:(UIApplication *)application

[...]

Обсуждение

[...]

Непосредственно перед тем, как стать неактивным, приложение также отправляет UIApplicationWillResignActiveNotification .