我有一个应用程序,我必须在其中将大型视频上传到 Amazon s3 存储桶。我正在使用由 NSOperationQueue 管理的 NSOperations 来运行并发任务。
上传小视频(小于 200 Mb)时我没有问题。但问题是当我尝试上传大视频时,10 分钟后上传过程被中断。
我已经 beginBackgroundTaskWithExpirationHandler:^
习惯了 10 分钟的窗口。我可以延长此超时期限的正确方法是什么?
如果我设法延长此超时时间,Apple 会拒绝该应用程序吗?
目前我在我的代码中有以下代码,我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];
}
通过这段代码,我看到后台任务永远不会被中断。正如您在过期处理程序中看到的那样,我已经启动了另一个后台任务事件,该事件导致一个无限运行的任务。即使上传完成后,我也可以编写结束后台任务的逻辑,但我对这种方法有疑问..
你们有什么感想?
无论如何都是黑客行为?苹果会因为以下方法拒绝该应用程序吗?