让NSTimer在后台运行

时间:2013-01-27 14:29:23

标签: objective-c nstimer

我有以下代码,每次用户点击特定按钮时都会运行1分钟。

timer = [[NSTimer alloc]init];
        timer=[NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(timerFired) userInfo:nil repeats:YES];
        [[NSRunLoop mainRunLoop] addTimer:timer forMode:NSRunLoopCommonModes];

我的问题是如果应用程序处于后台模式以便计时器仍在继续工作,如何保持运行?

提前致谢!

2 个答案:

答案 0 :(得分:3)

//NSTimer run in background.

NSTimer *myTimer;  <br>  
 [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:nil];<br>
   myTimer = [NSTimer scheduledTimerWithTimeInterval:60.0
                                 target:self
                               selector:@selector(targetMethod:)
                               userInfo:nil
                                repeats:YES];<br>
[[NSRunLoop currentRunLoop] addTimer:myTimer forMode:NSRunLoopCommonModes];

答案 1 :(得分:0)

你不应该alloc&amp; init你的计时器。

NSTimer *myTimer = [NSTimer scheduledTimerWithTimeInterval:60.0
                                 target:self
                               selector:@selector(targetMethod:)
                               userInfo:nil
                                repeats:YES];

您也可以随时随地停止。

[myTimer invalidate];