spritekit无法从后台状态打印

时间:2018-08-19 08:40:23

标签: swift background sprite-kit state

我关注了一些讨论,例如this,并尝试了以下建议的代码:

  let state = UIApplication.shared.applicationState
    if state == .background {
        print("App in Background")
    }else if state == .active {
        print("App in Foreground or Active")
    }

但是它只给我提供处于活动状态的打印件。从后台状态我什么也没得到。  如果我的应用程序在后台运行,我如何得到通知?我应该在哪里调用该函数?有人对此问题有经验吗?

1 个答案:

答案 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")
}