我关注了一些讨论,例如this,并尝试了以下建议的代码:
let state = UIApplication.shared.applicationState
if state == .background {
print("App in Background")
}else if state == .active {
print("App in Foreground or Active")
}
但是它只给我提供处于活动状态的打印件。从后台状态我什么也没得到。 如果我的应用程序在后台运行,我如何得到通知?我应该在哪里调用该函数?有人对此问题有经验吗?
答案 0 :(得分:0)
由于您使用的是SpriteKit,因此我假设用于检查state
的代码在您的didMove(to:)
版本的GameScene.swift
方法中是否已被调用。如果是这样,那么您没有遇到问题,而是得到了预期的结果;当场景调用didMove(to:)
方法时,应用程序始终处于活动状态。
AppDelegate.swift
版本中实现以下三种方法:快捷键4
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
print("app finished launching")
return true
}
func applicationDidEnterBackground(_ application: UIApplication) {
print("app in background")
}
func applicationWillEnterForeground(_ application: UIApplication) {
print("app in foreground")
}