如何使用 Dropbox 下载超过三分钟?

How can I download for longer than three minutes with Dropbox?

我的应用程序现在可以下载文件,但有一个问题,如果下载时间超过 4 分钟,就会超时。我设法将其归结为 iPad 自动锁定需要 1 分钟,后台任务需要 3 分钟。

我使用的方法是:

[restClient loadFile:filePath intoPath:localPath];

我不确定这是 Dropbox SDK 问题还是 iOS 问题。我的印象是您可以在后台下载很长时间,无论后台任务如何,但由于某种原因 dropbox SDK 停止了。

我的直觉会告诉我,请问有没有办法扩展后台任务?我在网上读了很多东西,说如果它满足这些要求中的任何一个,你就可以用 plist 做一些事情: 但我的应用不属于其中任何类别。

我还读到您可以在 BG 任务中使用计时器,但遗憾的是后来读到它不再起作用了。

原因是我试图将相当大的文件下载到应用程序(有时 300mb),而人们往往会离开他们的 iPad。

编辑-当我提到后台任务时,我指的是 beginBackgroundTaskWithExpirationHandler

谢谢

如您所知,后台任务受到严格限制。解决此问题的另一种方法是在下载开始后立即禁用 ipad 的自动锁定:

  [UIApplication sharedApplication].idleTimerDisabled = YES;

不要忘记在下载完成后重新启用定时器以避免过度耗电。

你能在这里参考我的答案吗:AVAudioPlayer is not playing in Background when iPhone is locked。实际上,我的问题是在从沙盒下载或收听媒体时无法 write/read。这就是我使用数据 - 保护 API 的原因。我认为这是基于安全问题。应用这些属性后,我解决了这个问题。我也可以下载大尺寸视频。对我来说没问题。