gpt4 book ai didi

iphone - 在后台和 Nstimer 中工作时出现问题?

转载 作者:行者123 更新时间:2023-12-03 20:21:04 26 4
gpt4 key购买 nike

您好,我有一个任务是使用 Nstimer 和后台进程开发应用程序。

我已经用计时器实现了后台进程。它执行得很好。但是当我第一次最小化应用程序时,我遇到了问题,当时它没有运行后台进程。尽量减少涂抹 3 至 4 次后。之后就可以顺利工作了。我还显示后台任务和计时器的代码如下。

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

UIApplication* app = [UIApplication sharedApplication];
NSLog(@"Application enter in background");
[NSTimer scheduledTimerWithTimeInterval:2.0f
target:self
selector:@selector(updateCounter:)
userInfo:nil
repeats:YES];
}

我的 updateCounter 方法如下:

    - (void)updateCounter:(NSTimer*)timer {

NSString *id = [[UIDevice currentDevice] uniqueIdentifier];
NSLog(@"uniqueid:%@",id);

locationManager = [[CLLocationManager alloc] init];
locationManager.delegate = self;
locationManager.desiredAccuracy = kCLLocationAccuracyBest;
locationManager.distanceFilter = kCLDistanceFilterNone;
[locationManager startUpdatingLocation];

CLLocation *location = [locationManager location];

// Configure the new event with information from the location
CLLocationCoordinate2D coordinate = [location coordinate];

NSString *latitude = [NSString stringWithFormat:@"%f", coordinate.latitude];
NSString *longitude = [NSString stringWithFormat:@"%f", coordinate.longitude];

NSLog(@"dLatitude : %@", latitude);
NSLog(@"dLongitude : %@",longitude);

}

他们的代码有什么问题吗请帮我解决。

最佳答案

NSTimer 当应用处于后台状态时暂停。

您必须启动一些后台任务才能完成您想要的操作。但即便如此,应用程序置于后台后,您仍将受到一定时间的限制。

真正的后台行为仅适用于位置跟踪、VoIP 或音频应用。其他应用必须面临限制:一旦进入后台,您就会有一定的时间来完成通过 beginBackgroundTaskWithExpirationHandler: (backgroundTimeRemaining) 开始的任务。

整个事情在iOS Application Programming Guide, Executing Code in the Background中有描述。 ,特别是here

关于iphone - 在后台和 Nstimer 中工作时出现问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7190919/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com