如何检查iOS程序是否处于前台或后台?
了解应用程序何时处于前台或后台非常重要,因为作为 iOS 开发人员,我们需要处理多个事件,例如后台下载以及应用程序转到前台时的事件。
在这里,我们将了解如何检查应用程序是否处于后台或前台。
我们将为此使用通知中心。
要了解更多信息,您可以参考苹果文档。
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("App moved to background!") }
步骤 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!") } }
广告