gpt4 book ai didi

ios - ios9的后台定时器

转载 作者:行者123 更新时间:2023-11-28 21:15:16 24 4
gpt4 key购买 nike

我的应用程序中有一个后台进程。这是代码:

@available(iOS 10.0, *)
func startTimer() {
timer2?.invalidate()
timer2 = Timer.scheduledTimer(withTimeInterval: 0.5, repeats: true, block: { (t) in
if UIApplication.shared.applicationState == .background {
NSLog("tic background \(UIApplication.shared.backgroundTimeRemaining)")

if UIApplication.shared.backgroundTimeRemaining < 10 {

}

}

})
timer2?.fire()
}

但是,它仅适用于 iOS10。有没有办法为以前的 iOS 版本重写?

最佳答案

在 ios9 或更低版本上没有基于 block 的计时器 API。

要么使用方法作为回调而不是 block ,要么使用第三方解决方案,例如BlocksKit(有数百个)

我采用一种方法:

func startTimer() {
timer2?.invalidate()
timer2 = Timer.scheduledTimer(timeInterval: 0.5, target: self, selector: #selector(ViewController.timerFired(_:)), userInfo: nil, repeats: true)
timer2?.fire()
}

@objc
func timerFired(_ timer: Timer) {
NSLog("tic")

if UIApplication.shared.applicationState == .background {
NSLog("tic background \(UIApplication.shared.backgroundTimeRemaining)")

if UIApplication.shared.backgroundTimeRemaining < 10 {

}

}
}

关于ios - ios9的后台定时器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41531140/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com