в iOS 4.3, как я могу отличить фоновый режим, когда вы нажимаете кнопку домой или когда вы нажимаете кнопку включения / выключения? - PullRequest
0 голосов
/ 03 мая 2011

Я уже использую метод:

(void)applicationDidEnterBackground:(UIApplication *)application {}

, но не могу различить, если есть, потому что нажмите кнопку домой или кнопку включения / выключения.

Заранее спасибо,

Ответы [ 4 ]

3 голосов
/ 03 мая 2011

Для кнопки включения / выключения (или входящего вызова или SMS):

- (void)applicationWillResignActive:(UIApplication *)application  

Для кнопки Домой:

- (void)applicationDidEnterBackground:(UIApplication *)application
1 голос
/ 09 июля 2012

С уведомлением applicationWillResignActive, applicationDidBecomeActive все равно будет вводиться, пока вы входите в фоновом режиме.Но есть способ дифференциации, получая состояние приложения, поэтому попробуйте это в applicationDidEnterBackground.

- (void)appHasGoneInBackground {       
    bool inBackground = [UIApplication sharedApplication].applicationState == UIApplicationStateBackground;

    // lockScreen state
    if (!inBackground) {
        // do something
    }
}

Справочник Apple по классу UIApplication

0 голосов
/ 03 мая 2011

Насколько я понимаю, когда вы блокируете или разблокируете свое устройство iOS, ваш делегат приложения будет вызывать - (void)applicationWillResignActive:(UIApplication *)application и - (void)applicationDidBecomeActive:(UIApplication *)application соответственно. Блокировка и разблокировка аналогичны получению прерывания, как телефонный звонок. Отправка приложения в фоновый режим нажатием кнопки home вызывает различные методы, а именно - (void)applicationDidEnterBackground:(UIApplication *)application и - (void)applicationWillEnterForeground:(UIApplication *)application.

0 голосов
/ 03 мая 2011

Используйте - (void)applicationDidEnterBackground:(UIApplication *)application {}, когда ваше приложение входит в фоновый режим (кнопка «Домой»), и - (void)applicationWillTerminate:(UIApplication *)application, когда оно должно быть закрыто (кнопка включения / выключения или вызов iOS для закрытия после случайного времени в фоновом режиме).

...