在我的应用程序能够继续运行NSOperations
之后,在NSOperationQueue
移动到后台后,我发现无论如何都会发生这种情况,即使没有任何指定它应该继续在后台运行。
以下代码将在应用程序移至后台后继续记录“已完成”,它将继续执行此操作,直到所有50个任务都已执行完毕。
NSOperationQueue *queue = [[NSOperationQueue alloc] init];
queue.maxConcurrentOperationCount = 1;
for (int i = 0; i < 50; i++) {
[queue addOperationWithBlock:^{
sleep(3);
NSLog(@"Finished %u", i);
switch ([UIApplication sharedApplication].applicationState) {
case UIApplicationStateActive:
NSLog(@"App is active");
break;
case UIApplicationStateInactive:
NSLog(@"App is NOT active");
break;
case UIApplicationStateBackground:
NSLog(@"App is in the background");
default:
break;
}
}];
}
我在这里缺少什么?我认为,一旦应用程序进入后台,执行就会停止,如果我需要,我必须明确地运行后台任务。