sul*_* qg 0 nsnotificationcenter ios swift
在我的快速应用程序中,当活动将转到后台时,我正在注销,但是当控制中心打开时,它将在后台运行.我的代码如下:
class MyApp:UIViewController{
NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(appMovedToBackground), name: UIApplicationWillResignActiveNotification, object: nil)
func appMovedToBackground() {
print("App moved to background!")
self.logout()
}
}
Run Code Online (Sandbox Code Playgroud)
有什么方法可以在活动在后台运行时注销,但在控制中心打开时不会注销.
UIApplicationWillResignActiveNotification不应该用于检测应用程序何时进入后台.您应该使用UIApplicationDidEnterBackgroundNotification此选项,仅当应用程序实际转到后台时才会调用此选项,而不是在打开控制中心或顶部通知时调用.
当控制中心打开时,您的应用程序会变为非活动状态,因此UIApplicationWillResignActiveNotification会触发通知,这是预期的行为
看看苹果文档UIApplicationWillResignActiveNotification
当应用程序不再处于活动状态并失去焦点时发布.
应用在接收事件时处于活动状态.一个活跃的应用程序可以说是重点.它在启动后获得焦点,在弹出覆盖窗口或设备锁定时失去焦点,并在设备解锁时获得焦点.
在您的情况下,弹出了一个覆盖窗口(控制中心),因此该通知已被触发.
| 归档时间: |
|
| 查看次数: |
708 次 |
| 最近记录: |