我有一个应用程序,我必须将大视频上传到Amazon S3存储桶。我正在使用由NSOperationQueue管理的NSOperations来运行并发任务。延长后台任务超时期间上传大视频iOS
我上传小视频(小于200 Mb)没有问题。 但问题是,当我尝试上传一个大型视频,上传过程中断10分钟后。
我已经在使用beginBackgroundTaskWithExpirationHandler:^
来获得10分钟的窗口。我可以延长这个超时时间的正确方法是什么?
如果我以某种方式设法延长此超时时间,苹果是否会拒绝该应用程序?
目前我在AppDelegate
下面的代码,我建立参照链接iPhone - Backgrounding to poll for events
- (void)applicationDidEnterBackground:(UIApplication *)application
{
UIApplication* app = [UIApplication sharedApplication];
dispatch_block_t expirationHandler;
expirationHandler = ^{
bgTask = [app beginBackgroundTaskWithExpirationHandler:expirationHandler];
};
bgTask = [app beginBackgroundTaskWithExpirationHandler:expirationHandler];
}
随着这段代码我看到后台任务被从未中断。正如您在过期处理程序中看到的那样,我已经启动了另一个后台任务事件,这导致无限运行的任务。尽管如此,一旦我的上传完成后,我可以编写逻辑结束后台任务,但我对此方法有所怀疑。
你们认为什么?
这是一种黑客手段吗?苹果是否会拒绝以下方法的应用程序?
bgTask = [app beginBackgroundTaskWithExpirationHandler:^(void){self.queue waitUntilAllOperationsAreFinished]; [app endBackgroundTask:bgTask]; bgTask = UIBackgroundTaskInvalid; }];那个伙计呢? – Xcoder
你们无权辩论愚蠢的答案和愚蠢的评论。老实说这是一个需要辩论的话题。请大家,我会请你公开讨论,以便我们可以关注一切的细节。谢谢 –
我可以用NSOperationQueue在后台上传大视频吗,苹果会否拒绝我的应用? –