我想让倒数计时器在后台继续运行。这就是我正在使用的代码:
- (void)timerRun
{
secondsCount--;
int minutes = secondsCount / 60;
int seconds = secondsCount - (minutes * 60);
NSString *timerOutput = [NSString stringWithFormat:@"%2d:%.2d", minutes, seconds];
self.timerLabel.text = timerOutput;
if (secondsCount == 0) {
[timer invalidate];
self.timerLabel.text = @"Time out";
}
}
- (void)startTimer
{
secondsCount = 120;
if (secondsCount == 0) {
[timer invalidate];
self.timerLabel.text = @"None";
}
else {
[timer invalidate];
timer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(timerRun) userInfo:nil repeats:YES];
}
}
如何使计时器在后台继续运行,并防止计时器每次重启时重启?感谢。
答案 0 :(得分:0)
你可以禁止和不良做法。 NSTimer需要一个运行循环来计算你不应该在后台使用它,所以NSTimer在后台停止。像@Dan Dosch说的那样。进入后台时记录时间戳,并将其与回到前台时的时间戳进行比较。您只需要在viewWillAppear中更新您的视图,它就能完成这项工作。