检测iOS应用程序进入后台

我正在使用Swift编写iOS游戏。 我试图find一种方法来检测应用程序进入后台模式或由于其他原因,例如打电话,但无法find任何东西中断。 我该怎么做?

Swift 3或更高版本

你可以添加一个观察者到您的视图控制器的UIApplicationWillResignActiveNotification

 NotificationCenter.default.addObserver(self, selector: #selector(willResignActive), name: .UIApplicationWillResignActive, object: nil) 

并添加一个select器方法到您的视图控制器,将在您的应用程序收到该通知时执行:

 @objc func willResignActive(_ notification: Notification) { // code to execute } 

要检测应用程序进入后台,可以在appDelegate.m中查找应用程序的委托方法

applicationDidEnterBackground

一旦应用程序进入后台,此方法将被调用。

Swift3

 let notificationCenter = NotificationCenter.default notificationCenter.addObserver(self, selector: #selector(appMovedToBackground), name: Notification.Name.UIApplicationWillResignActive, object: nil) func appMovedToBackground() { print("App moved to background!") } 

看一看UIApplicationDeletegate实例中定义的委托方法(默认情况下称为AppDelegate.m )。 具体来说,以下是有用的:

 - (void)applicationWillResignActive:(UIApplication *)application 

调用此方法让您的应用程序知道它将从活动状态变为非活动状态。 对于某些types的临时中断(例如来电或短信)或者用户退出应用程序并开始转换到后台状态时,可能会发生这种情况。 处于不活动状态的应用程序将继续运行,但不会将传入的事件分派给响应者。

采取从苹果文件 – 在这里