我是ios的新手。我正在做一个应用程序,我必须在后台计算时间,但我的问题是时间不要停在前台。请告诉我如何在前台停止后台计时器? Thnx in advnce。
答案 0 :(得分: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];
}
答案 1 :(得分:0)
通常,请勿使用计时器。使用NSDate
存储您感兴趣的开始时间(例如应用程序转到后台),然后将该日期与[NSDate date]
(即当前日期)进行比较,看看有多少时间已经过去了。
当应用程序在后台运行时,没有充分的理由运行计时器。