我想知道是否可以继续在后台上传文件。例如,当用户将iPad置于睡眠状态时,上传继续......
我在Dropbox论坛中也提到了这个问题,因为我使用核心API上传到Dropbox。这就是答案:
“使用核心API,上传完全由您的应用程序控制。您可以请求操作系统在后台保持您的应用程序活动,在暂停您的应用程序之前最多允许10分钟。您可以在这里查看更多信息: https://developer.apple.com/library/ios/#documentation/iphone/conceptual/iphoneosprogrammingguide/ManagingYourApplicationsFlow/ManagingYourApplicationsFlow.html 如果您使用新的Sync API,这将由API自动完成。“
我在这里发帖是因为我不明白他们的意思是'要求操作系统让你的应用程序在后台运行'。这是否意味着我必须向ios请求特定代码,它与dropbox无关,或者它是一个特定的Dropbox功能?
答案 0 :(得分:24)
您需要让操作系统保持应用程序运行,它与Dropbox无关...当您开始上传时,请执行以下操作:
UIBackgroundTaskIdentifier bgTask = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{
[[UIApplication sharedApplication] endBackgroundTask:bgTask];
}];
...并将bgTask
存储在某个地方。然后,当您的上传完成或失败时,请执行以下操作:
[[UIApplication sharedApplication] endBackgroundTask:bgTask];
这将告诉操作系统保持您的应用程序正常运行,因为正在运行后台任务...
答案 1 :(得分:2)
通过请求,这意味着当您的App Delegate方法applicationDidEnterBackground被调用时,您有大约5秒的时间来完成。当您进行长时间上传时,您可以通过beginBackgroundTaskWithExpirationHandler
请求额外的时间答案 2 :(得分:0)
New Dropbox SDK提供后台上传/下载文件的功能。请尝试使用新的SDK。有一个快乐的编码。
答案 3 :(得分:-3)
我想这对我有用。