2016-07-11 10 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:大歓迎:)。あなたはそれがあなたを助けている場合は緑のチックをチェックすることによって受け入れられたとして答えをマークすることができます:) –