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

iosapps/applicationsmobile development更新于 2026/2/13 11:07:17

了解应用程序何时处于前台或后台非常重要,因为作为一名 iOS 开发者,我们需要处理各种事件,例如后台下载、应用程序转至前台时发生的事件。

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

我们将使用通知中心来实现这一点。

更多信息,请参阅 Apple 文档。

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

一种通知调度机制,允许向已注册的观察者广播信息。我们将为其添加观察者并接收调用。

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

步骤 2 − 在 vi​​ewDidLoad 中创建一个通知中心对象

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("应用已移至前台")
}
@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("App moved to background!")
   }
}

相关文章