5

我正在使用NSOperation(s) 下载文件并添加它们NSOperationQueueNSOperationQueue当应用程序进入后台时被暂停。如果队列不会在后台挂起并开始下一个操作,是否有任何解决方法?

4

2 回答 2

9

当您的队列正在运行时,使用该UIApplication beginBackgroundTaskWithExpirationHandler调用启动一个后台任务,以保持您的下载运行。

我通常用自己的beginBackgroundTaskWithExpirationHandler调用来结束每个操作,并在我调用之前排队下一个操作endBackgroundTask,这样队列就会继续运行。

请注意,单个后台任务限制为 10 分钟的操作,之后 iOS 将暂停应用程序。

于 2012-12-13T10:14:38.513 回答
0

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

    __block UIBackgroundTaskIdentifier task = [application beginBackgroundTaskWithExpirationHandler:^{
        [application endBackgroundTask:task];
        task = UIBackgroundTaskInvalid;
    }];

}

于 2020-03-08T12:17:04.380 回答