在swift中检测应用程序是在后台还是前台

有没有办法知道我的应用程序的状态,如果它是在后台模式或前台。 谢谢

[UIApplication sharedApplication].applicationState将返回应用程序的当前状态,

  • UIApplicationStateActive
  • UIApplicationStateInactive
  • UIApplicationStateBackground

我们需要打电话

 let state: UIApplicationState = UIApplication.sharedApplication().applicationState // or use let state = UIApplication.sharedApplication().applicationState if state == .Background { // background } else if state == .Active { // foreground } 

迅速3及以上

 let state = UIApplication.shared.applicationState if state == .background { // background } else if state == .active { // foreground } 

斯威夫特3

  let state: UIApplicationState = UIApplication.shared.applicationState if state == .background { // background } else if state == .active { // foreground } 

斯威夫特4

 let state = UIApplication.shared.applicationState if state == .background { print("App in Background") }else if state == .active { print("App in Foreground or Active") } 

您可以在应用程序在后台输入或在前台输入时添加布尔值。 您可以使用App委托获得此信息。

根据Apple文档,也许您还可以使用应用程序的mainWindow属性或应用程序的活动状态属性。

NSApplication文档

讨论当应用程序的故事板或nib文件尚未完成加载时,此属性中的值为nil。 当应用程序处于非活动状态或隐藏状态时,它也可能为零。