我创建了计时器,当应用程序处于前台并处于活动状态时,它正常工作。这是我的代码:
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
}
但是我的计时器正在处理应用程序处于后台时的延迟。我不知道自己做错了什么。
任何建议。请帮帮我。
提前致谢。