我是 ios 的新手。我正在做一个应用程序,我必须在后台计算时间,但我的问题是时间不会在前台停止。请告诉我如何在前台停止后台计时器?Thnx 在advnce。
问问题
378 次
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 回答