【发布时间】:2012-02-11 05:37:43
【问题描述】:
我有一个计时器,它显示用户锻炼的 NSTime。当我的应用程序进入后台模式时,位置管理器和计时器停止更新。当我的应用程序处于后台模式时,如何让它们更新?
我有一个名为 RunViewController 的视图,它有开始按钮。当用户单击该按钮时,计时器和位置管理器将启动。代码是:
-(void)startRun{
timeSec = 0;
timeMin = 0;
timeHour = 0;
NSString* timeNow = [NSString stringWithFormat:@"%02d:%02d:%02d",timeHour , timeMin, timeSec];
//Display on your label
lblTime.text = timeNow;
timer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(timerTick:) userInfo:nil repeats:YES];
[[NSRunLoop currentRunLoop] addTimer:timer forMode:NSDefaultRunLoopMode];
self.locManager = [[CLLocationManager alloc] init];
locManager.delegate = self;
locManager.desiredAccuracy = kCLLocationAccuracyBest; //kCLLocationAccuracyBest
[locManager setDistanceFilter:3]; //kCLDistanceFilterNone
[locManager startUpdatingLocation];
locationManagerStartDate = [[NSDate date] retain];
}
在 - (void) locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
只需在地图上从旧位置到新位置绘制一条线并将该位置保存在一个数组中。
提前致谢。
【问题讨论】:
-
发布您的一些代码。还发布位置更新管理器代码
标签: iphone objective-c ios nstimer cllocationmanager