我有一个要求,用户可以一个接一个地下载多个文件。 当我的应用程序进入后台或iPad被锁定时,下载或网络服务响应只能持续10分钟。下载iPad设备锁定时间超过10分钟的大文件
我的下载发生在一个单独的线程中,我已经实施了beginBackgroundTaskWithExpirationHandler:
一些谷歌搜索和在stackoverflow链接。
How to implement Task completion
App crash because of auto lock in iphone?
和iOS documetation
现在我的一些选定的文件被下载和一些失败,因为一次只能10分钟,最大运行后台任务。
有没有其他选择? 我应该在应用程序进入后台时完全暂停下载吗? 任何人都可以帮我解决这个问题吗?
我已经成功地通过没有结束后台任务这样做,如果我的下载正在进行
bgTask = [app beginBackgroundTaskWithExpirationHandler:^{ NSLog(@"\n beginBackgroundTaskWithExpirationHandler called \n"); if(![self checkIfDownloadInProgress]){ [self endTaskOnCompletion]; } }];
这只能当设备由用户手动锁定。如果设备在2分钟后自动锁定,应用程序运行10分钟,然后崩溃 任何人都可以帮忙吗?
当'beginBackgroundTaskWithExpirationHandler:'被调用时,我已经通过不使任务失效来延长后台任务。我只有在下载完成时才使任务无效,并且这在手动锁定设备时有效。我编辑了我的问题并添加了代码。但是,当设备自动锁定时,应用程序在10分钟后崩溃。任何人都可以帮忙吗? – krusty 2012-04-25 15:59:51
嗨krusty。你有没有尝试过使用GCD?它应该填满你的需求。 – Selvin 2012-05-02 11:56:53