检测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的临时中断(例如来电或短信)或者用户退出应用程序并开始转换到后台状态时,可能会发生这种情况。 处于不活动状态的应用程序将继续运行,但不会将传入的事件分派给响应者。
采取从苹果文件 – 在这里