<分区>
我有一个应用程序,我必须在其中将大型视频上传到 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];
}
通过这段代码,我发现后台任务永远不会被中断。正如您在到期处理程序中看到的那样,我启动了另一个后台任务事件,该事件导致无限运行的任务。尽管我可以编写逻辑来在上传完成后结束后台任务,但我对这种方法有疑问..
大家怎么看?
它是黑客攻击吗? Apple 会拒绝该应用程序的以下做法吗?