NSTImer在iphone 5中暂停了后台

时间:2013-09-03 09:14:34

标签: iphone nstimer

我开发了一款在后台运行良好的应用,因为我正在使用GPS服务。在

app NSTimerIPhone 4IPhone 4s的后台运行正常。

当应用处于后台时,如何暂停IPhone5

我用于NSTimer的代码是

repeatTimer5 =   [NSTimer scheduledTimerWithTimeInterval:1.0 target: self
                                                        selector: @selector(toupdate) userInfo: nil repeats: YES];


 [[NSRunLoop currentRunLoop]addTimer:repeatTimer5 forMode: NSDefaultRunLoopMode];

有没有人遇到同样的问题?

1 个答案:

答案 0 :(得分:0)

使用此: 当应用程序在AppDelegate委托方法中输入后台时触发您的计时器:

 - (void)applicationDidEnterBackground:(UIApplication *)application
    {
        if(!repeatTimer5.isValid)
        {
repeatTimer5 =   [NSTimer scheduledTimerWithTimeInterval:1.0 target: self
                                                                 selector: @selector(toupdate) userInfo: nil repeats: YES];
        }


    }

    - (void)toupdate
    {
        DLog(@"Testing timer Fired");
    }

当应用程序在前台移动时,这将触发您的计时器方法,并在应用程序在后台移动时恢复。

如果仍需要此计时器将在后台模式下触发,则启动BackgroundTask

- (void)applicationDidEnterBackground:(UIApplication *)application
    {
        if(!repeatTimer5.isValid)
         {
       [application beginBackgroundTaskWithExpirationHandler:^{
        //your background expiration handler method
    }];

    repeatTimer5 =   [NSTimer scheduledTimerWithTimeInterval:1.0 target: self
                                                             selector: @selector(toupdate) userInfo: nil repeats: YES];
          }


    }

    - (void)toupdate
    {
        DLog(@"Testing timer Fired");
    }

当你的应用程序处于后台时,这将启动你的计时器