当应用程序处于后台时,计时器正在处理延迟

时间:2017-07-20 10:32:27

标签: ios swift3 timer xcode8

我创建了计时器,当应用程序处于前台并处于活动状态时,它正常工作。这是我的代码:

override func viewDidLoad() {
    super.viewDidLoad()

    NotificationCenter.default.addObserver(self, selector: #selector(reinstateBackgroundTask), name: NSNotification.Name.UIApplicationDidBecomeActive, object: nil)

}
    func createTimer (){
        gameTimer = Timer.scheduledTimer(timeInterval: 0.001, target: self, selector: #selector(self.runTimedCode), userInfo: nil, repeats: true)
        RunLoop.current.add(gameTimer, forMode: .commonModes)
        registerBackgroundTask()

    }

    func registerBackgroundTask() {
        backgroundTask = UIApplication.shared.beginBackgroundTask { [weak self] in
            self?.endBackgroundTask()
        }
        assert(backgroundTask != UIBackgroundTaskInvalid)
    }

    func endBackgroundTask() {
        print("Background task ended.")
        UIApplication.shared.endBackgroundTask(backgroundTask)
        backgroundTask = UIBackgroundTaskInvalid
    }

但是我的计时器正在处理应用程序处于后台时的延迟。我不知道自己做错了什么。

任何建议。请帮帮我。

提前致谢。

0 个答案:

没有答案