如何检查 iOS 程序是在前台还是后台?
iosapps/applicationsmobile development更新于 2026/2/13 11:07:17
了解应用程序何时处于前台或后台非常重要,因为作为一名 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("应用已移至前台")
}
@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!")
}
}

