如何检查iOS程序是在前台还是在后台?

作为iOS开发人员,了解应用程序处于前台还是后台很重要,我们需要处理多个事件,例如后台下载,应用程序进入前台时的事件。

在这里,我们将看到如何检查应用程序是在后台还是在前台。

我们将为此使用通知中心,

要了解更多信息,请参考Apple文档。

 https://developer.apple.com/documentation/foundation/notificationcenter

一种通知分派机制,可将信息广播到注册的观察者。我们将向其添加观察者,并将获得呼叫。

步骤1-打开Xcode→新建项目→单视图应用程序→让我们将其命名为“ ForegroundBackground”

步骤2-在viewDidLoad中创建通知中心的对象

let notificationCenter = NotificationCenter.default

步骤3-为背景和前景添加观察者

notificationCenter.addObserver(self, selector: #selector(backgroundCall), name: UIApplication.willResignActiveNotification, object: nil)

notificationCenter.addObserver(self, selector: #selector(foregroundCall), name: UIApplication.didBecomeActiveNotification, object: nil)

第4步-实现选择器方法

@objc func foregroundCall() {
   print("App moved to foreground")
}
@objc func backgroundCall() {
   print("应用已移至后台!")
}

步骤5-放置断点并运行应用程序。

完整的代码

import UIKit
class ViewController: UIViewController {
   override func viewDidLoad() {
      super.viewDidLoad()
      let notificationCenter = NotificationCenter.default
      notificationCenter.addObserver(self, selector: #selector(backgroundCall), name: UIApplication.willResignActiveNotification, object: nil)
      notificationCenter.addObserver(self, selector: #selector(foregroundCall), name: UIApplication.didBecomeActiveNotification, object: nil)
   }
   @objc func foregroundCall() {
      print("App moved to foreground")
   }
   @objc func backgroundCall() {
      print("应用已移至后台!")
   }
}