如何检查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!")
   }
}

更新于:2019年8月7日

620 次浏览

启动您的职业生涯

完成课程获得认证

开始学习
广告