Я создаю игру, в которой пользователь получает очки, когда приложение находится в фоновом режиме или не работает. Если приложение полностью закрыто, они все равно должны получать очки. В настоящее время я делаю это с помощью NSTimer, однако я везде читал, что таймеры не могут выполняться в фоновом режиме. Вот что у меня есть и как я должен это исправить:Исключить подсчет очков в игре в фоновом режиме Цель-c
- (void)applicationDidEnterBackground:(UIApplication *)application {
score = [[NSUserDefaults standardUserDefaults] integerForKey:@"score"];
[[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:nil];
timer = [NSTimer timerWithTimeInterval:1.0 target:self selector:@selector(score) userInfo:nil repeats:YES];
[[NSRunLoop currentRunLoop] addTimer:timer forMode:NSRunLoopCommonModes];
}
-(void) score{
score++;
[[NSUserDefaults standardUserDefaults] setInteger:score forKey:@"score"];
}
Существует определенное время, позволяющее запускать фоновые задачи, когда ваше приложение находится в фоновом режиме. Когда вы пройдете это время, вы больше не сможете выполнять какие-либо задачи. Вы должны искать уведомления вместо запуска задач на фоне. –
Я посмотрю, что @TejaNandamuri – John55