Ios 为什么当控制中心打开时,swift应用程序在后台运行?
在我的swift应用程序中,当活动进入后台时,我正在注销,但当控制中心打开时,它将进入后台。我的代码如下:Ios 为什么当控制中心打开时,swift应用程序在后台运行?,ios,swift,nsnotificationcenter,Ios,Swift,Nsnotificationcenter,在我的swift应用程序中,当活动进入后台时,我正在注销,但当控制中心打开时,它将进入后台。我的代码如下: class MyApp:UIViewController{ NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(appMovedToBackground), name: UIApplicationWillResignActiveNotification, object: nil)
class MyApp:UIViewController{
NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(appMovedToBackground), name: UIApplicationWillResignActiveNotification, object: nil)
func appMovedToBackground() {
print("App moved to background!")
self.logout()
}
}
当活动在后台运行时,应用程序是否可以注销,但当控制中心打开时,应用程序是否可以注销
UIApplicationWillResignActiveNotification
不应用于检测应用程序何时进入后台。您应该改用UIApplicationIdentinterBackgroundNotification
,它仅在应用程序实际进入后台时调用,而不是在打开control center或从顶部打开通知时调用
当control center打开时,您的应用确实变为非活动状态,因此会触发UIApplicationWillResignActiveNotification
通知,这是预期的行为
看看苹果文档
当应用程序不再处于活动状态并失去焦点时发布
应用程序在接收事件时处于活动状态。活动应用程序可以是
据说有焦点。它在启动后获得焦点,但失去焦点
当覆盖窗口弹出或设备被锁定时,并获得
设备解锁时聚焦
在您的情况下,会弹出一个覆盖窗口(控制中心),因此会触发此通知。@sulabhqg:Most-welcome:)。如果绿色勾号对您有帮助,您可以通过勾选绿色勾号将答案标记为已接受:)