6

我想知道是否可以在后台继续上传文件。例如,当用户让 iPad 进入睡眠状态时,上传继续......

我也在 Dropbox 论坛中问过这个问题,因为我正在使用核心 API 上传到 Dropbox。这是答案:

“使用核心 API,上传完全由您的应用程序控制。您可以请求操作系统在后台保持您的应用程序处于活动状态,这将允许最多 10 分钟,然后暂停您的应用程序。您可以查看更多信息此处: https ://developer.apple.com/library/ios/#documentation/iphone/conceptual/iphoneosprogrammingguide/ManagingYourApplicationsFlow/ManagingYourApplicationsFlow.html 如果您使用新的 Sync API,这一切都将由 API 自动完成。”

我在这里发帖是因为我不明白他们所说的“请求操作系统让你的应用程序在后台保持活跃”是什么意思。这是否意味着我必须向 ios wi 请求特定代码,它与 dropbox 无关,或者它是一个特定的 dropbox 功能?

4

4 回答 4

24

您需要要求操作系统保持应用程序运行,它与 Dropbox 无关......当您开始上传时,请执行以下操作:

UIBackgroundTaskIdentifier bgTask = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{
    [[UIApplication sharedApplication] endBackgroundTask:bgTask];
}];

...并存储在bgTask某处。然后,当您的上传完成或失败时,请执行以下操作:

[[UIApplication sharedApplication] endBackgroundTask:bgTask];

这将告诉操作系统保持您的应用程序运行,因为有一个后台任务正在运行......

于 2013-04-03T14:32:24.810 回答
2

http://developer.apple.com/library/ios/#documentation/uikit/reference/UIApplicationDelegate_Protocol/Reference/Reference.html

通过请求,这意味着当您的 App Delegate 方法 applicationDidEnterBackground 被调用时,您有大约 5 秒的时间来完成。当您进行长时间上传时,您可以通过 beginBackgroundTaskWithExpirationHandler 请求额外的时间

于 2013-04-03T14:36:11.883 回答
0

新的 Dropbox SDK 提供后台上传/下载文件的功能。请尝试使用新的 SDK。祝您编码愉快。

于 2013-04-24T12:10:22.860 回答
-3

我想这对我有用。

  1. 禁用自动锁定
  2. 禁用屏幕超时
  3. 插上电源
  4. 在 iphone 上为 Dropbox 和后台运行选项启用位置服务
  5. 让 Dropbox 应用保持打开状态
  6. 2000多张照片和视频成功上传
于 2014-08-09T11:57:50.470 回答