Это мой код:
- (void) printCount {
NSLog(@"Current second: %i", i++);
}
- (void)applicationDidEnterBackground:(UIApplication *)application
{
UIBackgroundTaskIdentifier taskId = [application beginBackgroundTaskWithExpirationHandler:^{NSLog(@"Task expired");}];
[NSTimer scheduledTimerWithTimeInterval:1.0
target:self
selector:@selector(printCount) userInfo:nil repeats:YES];
if (i == 10000) {
[application endBackgroundTask:taskId];
}
}
И вот журнал, который я получаю:
....
Current second: 579
Current second: 580
Current second: 581
Current second: 582
Current second: 583
Task expired
Current second: 584
Current second: 585
Current second: 586
Current second: 587
Current second: 588
Current second: 589
Current second: 590
....
Как я знаю, использование beginBackgroundTaskWithExpirationHandler
позволило только 10 минутЯ имею в виду, что срок действия UIBackgroundTaskIdentifier
истекает через 10 минут.И это действительно произошло («Задача истекла» в журнале)!Но почему NSTimer
продолжать бежать?o_O С уважением!