【问题标题】:NSUrlSession: is it possible to upload files in the background?NSUrlSession:可以在后台上传文件吗?
【发布时间】:2015-07-09 20:06:18
【问题描述】:

使用NSUrlSession 和后台配置让我下载文件,即使应用程序被iOS 终止。出于好奇,我尝试添加一个上传任务,发现它不会继续,即使应用程序只是暂停也不会。

Apple 谈到了“Downloading in the background”,但他们没有明确声明 上传 是不可能的。

有人可以确认上传和后台会话配置不能一起工作吗?

【问题讨论】:

    标签: ios objective-c nsurlsession nsurlsessionuploadtask


    【解决方案1】:

    他们确实一起工作。

    你需要做的是:

    有一个带有后台配置的 NSURLSessionConfiguration

    NSURLSessionConfiguration *conf = [NSURLSessionConfiguration backgroundSessionConfiguration:@"backgroundSession"];
    

    设置一个 NSURLSession (@property NSURLSession *urlSession)

    获取文件的路径(fullPath)

    创建 NSURLRequest(请求)

    创建一个 NSURLSessionTask

    NSURLSessionTask*task = [self.urlSession uploadTaskWithRequest:request fromFile:fullPath];
    [task resume];
    

    任务将在后台运行。您可以从 NSURLSession 委托方法中获取状态。

    干杯

    【讨论】:

    • 是的,这就是我所做的,它在模拟器上效果很好,但在设备上却不行。如果应用程序后台运行,iOS8 模拟器不会暂停线程。如果您有工作示例,请告诉我。
    • 您是否在应用程序中启用了后台模式?
    • 您希望我启用什么特定的后台模式?没有一个用于后台传输。如前所述:下载工作正常,上传不行。
    • 您实际上是对的。它确实在后台工作,但它非常非常不稳定且无证。顺便说一句:不需要启用任何后台模式。
    • @Krumelur 你知道如何在后台管理上传吗?文档仍然薄弱。
    猜你喜欢
    • 2014-12-26
    • 1970-01-01
    • 2015-04-04
    • 2013-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-08
    相关资源
    最近更新 更多