在后台运行已经运行的NStimer

时间:2014-07-10 11:23:23

标签: ios nstimer background-process

在我的iOS应用程序中,我使用NSTimer来记录我的应用中发生的一些事件。现在我想让他们在我的应用程序进入后台时进行录制,这样即使我的应用程序在后台,我的NSTimer也会继续录制事件。 有人可以指导我如何实现这种行为吗?

2 个答案:

答案 0 :(得分:0)

计时器无法在后台运行。您唯一能做的就是记录应用程序进入后台以及应用程序进入前台的时间。采取差异并采取适当的行动。

答案 1 :(得分:0)

除非您启用其中一种后台模式,否则它无法正常工作。

为什么?

在ios停止计时器后,你有大约10分钟的后台执行。

应用程序被锁定后,计时器不会触发(iOS7),因为ios会暂停前台应用程序而bgTask不会再次触发。

有一些解决方法,请参阅下面的检查

//当应用程序在后台运行时运行NSTimer

[[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:nil];
loop = [NSTimer scheduledTimerWithTimeInterval:0.25 target:self selector:@selector(Update) userInfo:nil repeats:YES];
[[NSRunLoop currentRunLoop] addTimer:loop forMode:NSRunLoopCommonModes];

另请检查此NSTimer in Background