0

我怎样才能让 NSTimer 在用户在应用程序中的整个时间内运行?

我希望能够更改视图控制器并执行不同的功能,同时计时器在后台运行。如果计时器达到 0,那么我想触发一个事件。当应用程序在后台时,我还可以在应用程序内部设置一个计时器吗?甚至当 iPhone 的屏幕关闭时?

感谢您的回答!

4

2 回答 2

2

在 Appdelegate 中执行这段代码,使计时器成为它的属性。

self.timer = [NSTimer scheduledTimerWithTimeInterval:intervalForTimer
                                                    target: self
                                                  selector: @selector(timerExpired:)
                                                  userInfo: nil
                                                   repeats: NO];

   //Run the timer on the runloop to ensure that it works when app is in background
  [[NSRunLoop currentRunLoop]addTimer:self.timer forMode: NSDefaultRunLoopMode];
于 2013-05-03T06:40:34.100 回答
1

在应用委托中运行此方法

-(void) timerfunc{
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
    timer = [NSTimer scheduledTimerWithTimeInterval:(0.5) target:self selector:@selector(yourfunction) userInfo:nil repeats:YES ];
    [pool release];

}
于 2013-05-03T06:42:00.857 回答