如何检测 iOS 应用是否处于后台或前台?


要检测 iOS 应用是否处于后台或前台,我们可以简单地使用 UIApplication,就像我们可以使用它来检测许多其他内容(如电池状态、状态等)一样。

让我们看看如何在我们的应用中做到这一点。我们将使用存储在 UIApplication.shared 中的应用共享资源。我们可以像下面这样使用它:

print(UIApplication.shared.applicationState)

shared.application state 是一个 State 类型的枚举,根据苹果的文档,它包含以下内容。

public enum State : Int {
   case active
   case inactive
   case background
}

active 状态表示应用程序位于前台,并且正在接收事件,例如触摸事件或任何其他可以使应用程序保持活跃的事件。

Inactive 状态表示应用程序正在前台运行,但没有接收任何事件。

background 状态表示应用程序正在后台运行。

我们可以根据需要(如上所示)使用它。我们还可以根据条件执行某些操作。

let state = UIApplication.shared.applicationState
if state == .active {
   print("I'm active")
}
else if state == .inactive {
   print("I'm inactive")
}
else if state == .background {
   print("I'm in background")
}

当我们在应用的 viewDidLoad 中运行它时,我们得到以下结果

更新于: 2019-07-30

3K+ 阅读量

开启你的 职业生涯

通过完成课程获得认证

立即开始
广告