0

我是 ios 的新手。我正在做一个应用程序,我必须在后台计算时间,但我的问题是时间不会在前台停止。请告诉我如何在前台停止后台计时器?Thnx 在advnce。

4

2 回答 2

1

要在同一班级的某处停止计时器:

- (void)applicationWillEnterForeground:(UIApplication *)application
{

[Timer invalidate];
    Timer = nil;
}

- (void)applicationDidEnterBackground:(UIApplication *)application
{
    NSLog(@"Background process is Start(EnterBackground)!");
    __block UIBackgroundTaskIdentifier bgTask ;
    UIApplication  *app = [UIApplication sharedApplication];
    bgTask = [app beginBackgroundTaskWithExpirationHandler:^{
        [app endBackgroundTask:bgTask];
        bgTask = UIBackgroundTaskInvalid;
    }];
    Timer = [NSTimer scheduledTimerWithTimeInterval:4.0f target:self  selector:@selector(process)  userInfo:nil repeats:YES];
}
于 2014-05-14T12:48:45.703 回答
0

一般来说,不要使用计时器。使用 anNSDate存储您感兴趣的开始时间(例如应用程序进入后台),然后将该日期与[NSDate date](即当前日期)进行比较,以查看已经过去了多少时间。

当应用程序在后台运行时,确实没有充分的理由运行计时器。

于 2014-05-14T13:28:35.227 回答