2016-07-11 1 views
0

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

class MyApp:UIViewController{ 
    NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(appMovedToBackground), name: UIApplicationWillResignActiveNotification, object: nil) 

    func appMovedToBackground() { 
     print("App moved to background!") 
     self.logout() 
    } 
} 

Есть ли способ, где приложение будет выйти из системы, когда активность выполняется в фоновом режиме, но не при открытии центра управления.

ответ

5

UIApplicationWillResignActiveNotification не должен использоваться для обнаружения, когда приложение переходит на задний план. Вместо этого вы должны использовать UIApplicationDidEnterBackgroundNotification, это будет вызываться только тогда, когда приложение фактически переходит на задний план, а не при открытии центра управления или уведомлений сверху.

Когда центр управления открывает ваше приложение действительно становится неактивным и, следовательно, UIApplicationWillResignActiveNotification уведомления обжигают, Это предназначено поведению на

Посмотрите на яблоневых документах UIApplicationWillResignActiveNotification

Посланы когда приложение больше не является активным и теряет фокус ,

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

В вашем случае появилось оверлейное окно (Центр управления), поэтому это уведомление было уволено.

+0

спасибо @Bhumit Mehta, чтобы помочь мне .. это работает. –

+0

@sulabhqg: Большинство приветствуется :). Вы можете отметить ответ, принятый, отметив зеленый тик, если он вам помог :) –

Смежные вопросы