首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在后台拉取ios中发起后台传输服务

在后台拉取ios中发起后台传输服务
EN

Stack Overflow用户
提问于 2015-08-14 14:29:42
回答 1查看 471关注 0票数 1

我的目标是在应用程序处于后台时将数据/图像发送到服务器。在iOS7中,我们可以使用后台fetch来完成此操作。但是后台抓取只提供30秒的时间限制。我发送到服务器的数据可能需要更长的时间,因为它有更多的图像。在谷歌搜索时,我遇到了后台传输服务,它提供了无限制的时间来在后台上传/下载数据。后台取码是否可以发起后台转账服务?如果是这样,如何处理它。

EN

回答 1

Stack Overflow用户

发布于 2015-12-14 22:47:52

无论何时你想要开始你的上传/下载(在你的例子中是在你30秒的后台抓取期间),执行下面的代码行:

代码语言:javascript
复制
        NSString *downloadURLString = //Your link here;
        NSURL* downloadURL = [NSURL URLWithString:downloadURLString];

        NSURLRequest *request = [NSURLRequest requestWithURL:downloadURL];


        // Create a background session
        static NSURLSession *session = nil;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        NSString *identifier = @"com.yourcompany.yourapp";
        NSURLSessionConfiguration* sessionConfig = [NSURLSessionConfiguration backgroundSessionConfigurationWithIdentifier:identifier];

        session = [NSURLSession sessionWithConfiguration:sessionConfig delegate:self delegateQueue:nil];
    });


        //Init a NSURLSessionDownloadTask with the just-created request and resume it
        NSURLSessionDownloadTask *task = [session downloadTaskWithRequest:request];
        [task resume];

    });

另外,别忘了实现这些委托方法:

代码语言:javascript
复制
- (void)URLSession:(NSURLSession *)session downloadTask:(NSURLSessionDownloadTask *)downloadTask
                              didFinishDownloadingToURL:(NSURL *)location;

- (void)URLSession:(NSURLSession *)session downloadTask:(NSURLSessionDownloadTask *)downloadTask
                                           didWriteData:(int64_t)bytesWritten
                                      totalBytesWritten:(int64_t)totalBytesWritten
                              totalBytesExpectedToWrite:(int64_t)totalBytesExpectedToWrite;


- (void)URLSession:(NSURLSession *)session downloadTask:(NSURLSessionDownloadTask *)downloadTask
                                      didResumeAtOffset:(int64_t)fileOffset
                                     expectedTotalBytes:(int64_t)expectedTotalBytes;

有关详细示例,请查看this示例应用程序

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32003627

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档