我正在尝试下载将大型视频(400 mb)加载到背景中...直到 iOS-7中使用Xcode-5 的视频结束。但是下载10或5分钟后停止。
我编写了如下代码,我设置了“后台获取模式为YES ”。我的代码有什么问题。
参考2:
问题:如何保存我的网址请求直到我的视频以后台模式下载?
感谢Advence。
- (void)applicationDidEnterBackground:(UIApplication *)application
{
UIApplication *app = [UIApplication sharedApplication];
UIBackgroundTaskIdentifier m_backgroundTaskId;
m_backgroundTaskId = [[UIApplication sharedApplication]
beginBackgroundTaskWithExpirationHandler:^(void) {
m_isWentBackground = YES;
[m_dataController saveUnfineshedDownoadsToFile];
[[UIApplication sharedApplication]
endBackgroundTask:m_backgroundTaskId];
m_backgroundTaskId = UIBackgroundTaskInvalid;
}];
}
答案 0 :(得分:2)
你说错了,beginBackgroundTaskWithExpirationHandler
会给你最多10分钟的下载时间,但如果你想要真正的后台下载,你必须查看后台传输服务
你有2个教程:
答案 1 :(得分:1)
UIApplication的beginBackgroundTaskWithExpirationHandler应该用作“任务修整器”。您的代码没有任何问题,但这个代码的目的就是问题。 此操作将保持活动最多10分钟左右,操作系统决定任务的运行时间。如果您要下载400mb视频,则不是您需要的。 您应该考虑另一种方法来执行此任务 - 这不是在后台操作中。 Apple自己的定义的后台操作不能持续超过10分钟。
也许,执行排队的后台操作会逐渐附加数据,直到您拥有完整的视频?或者当app不在另一个线程的后台时执行此操作?
默认情况下,400mb视频听起来不像移动设备应该做的事情。
答案 2 :(得分:1)
除非您的应用属于以下类型之一,否则后台处理在ios中最多只允许10分钟。
请参阅以下内容以获取更多信息..