Ios 后台快速定时器
我通过地理围栏的触发器在iOS中创建一个后台任务。在这种背景下,我启动一个计时器来倒计时,以超时此任务。然而,这个计时器工作不正常,可能会在10秒后暂停,并在我将应用程序绑定到前台时恢复 我需要帮助使这个计时器在10分钟内正常工作。 这是我的密码Ios 后台快速定时器,ios,swift,timer,background,Ios,Swift,Timer,Background,我通过地理围栏的触发器在iOS中创建一个后台任务。在这种背景下,我启动一个计时器来倒计时,以超时此任务。然而,这个计时器工作不正常,可能会在10秒后暂停,并在我将应用程序绑定到前台时恢复 我需要帮助使这个计时器在10分钟内正常工作。 这是我的密码 @objc func timeoutChecking(_ timer: Timer) { print("time \(self.currentTime)") if self.currentTime != TIME_SEARCH {
@objc func timeoutChecking(_ timer: Timer) {
print("time \(self.currentTime)")
if self.currentTime != TIME_SEARCH {
self.currentTime += 1
}
else {
// Time out
self.stopChecking()
}
}
几秒钟后,不可能在后台连续运行计时器。苹果可能会丢弃计时器 您可以做一件事,在
applicationIdentinterbackground
中获取一个全局变量add set current time,然后applicationWillEnterForeground
检查此方法获取当前系统时间和存储的上一次时间比较这两次,并获取它们之间的差异,然后检查is
if self.currentTime != TIME_SEARCH {
self.currentTime += 1
}
else {
// Time out
self.stopChecking()
}
您必须在此处进行检查,如
if self.currentTime>TIME\u SEARCH
或if self.currentTime
,以便获得完美的结果: 这是因为您在main
线程中启动了计时器