问题在于NSURLSession和NSURLSessionUploadTask.
我正在将大文件上传到服务器,并注意到当我强制退出应用程序时,整个后台上传才停止.但是,当应用程序通过Xcode /调试器运行时上传开始时,即使我停止通过Xcode"停止"按钮运行应用程序,我的上传也很好.我怀疑强制使用Xcode退出应用程序模拟iOS系统命令而不是用户操作.
所以我的问题是当用户强制退出应用程序时iOS是否会立即取消NSURLSessionUploadTask?出于某种原因,我至少会期待对应用程序的错误回调,但没有任何反应.
我一直在使用NSURLSession后台上传到 AWS S3。像这样的东西:
NSURLSessionConfiguration* configuration = [NSURLSessionConfiguration backgroundSessionConfigurationWithIdentifier:@“some.identifier"];
NSURLSession* session = [NSURLSession sessionWithConfiguration:configuration delegate:someDelegate delegateQueue:[NSOperationQueue mainQueue]];
NSURLSessionUploadTask* task = [session uploadTaskWithRequest:request fromFile:[NSURL fileURLWithPath:httpBody]];
[task resume];
Run Code Online (Sandbox Code Playgroud)
在 中someDelegate,我已实施didSendBodyData,didCompleteWithError和handleEventsForBackgroundURLSession.
我有三个问题:
handleEventsForBackgroundURLSession当在应用程序被关闭完成转移叫什么?httpBodyin handleEventsForBackgroundURLSession?这是传输完成后不需要的临时文件。