相关疑难解决方法(0)

iOS:强制退出应用程序是否禁用使用NSURLSession的后台上传?

问题在于NSURLSessionNSURLSessionUploadTask.

我正在将大文件上传到服务器,并注意到当我强制退出应用程序时,整个后台上传才停止.但是,当应用程序通过Xcode /调试器运行时上传开始时,即使我停止通过Xcode"停止"按钮运行应用程序,我的上传也很好.我怀疑强制使用Xcode退出应用程序模拟iOS系统命令而不是用户操作.

所以我的问题是当用户强制退出应用程序时iOS是否会立即取消NSURLSessionUploadTask?出于某种原因,我至少会期待对应用程序的错误回调,但没有任何反应.

cocoa-touch ios nsurlsession

18
推荐指数
2
解决办法
2423
查看次数

后台传输如何在 iOS 中实际工作?

我一直在使用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,didCompleteWithErrorhandleEventsForBackgroundURLSession.

我有三个问题:

  1. 我注意到如果我在上传过程中关闭应用程序,传输将继续并成功完成。是handleEventsForBackgroundURLSession当在应用程序被关闭完成转移叫什么?
  2. 假设第一个问题的答案是肯定的,我如何删除httpBodyin handleEventsForBackgroundURLSession?这是传输完成后不需要的临时文件。
  3. 如果有人详细解释后台传输在 iOS 中的工作原理,我将不胜感激。那就是在创建内存时,在哪些状态下调用哪些回调以及传输完成后如何唤醒应用程序。谢谢。

networking cocoa-touch ios nsurlsession

2
推荐指数
1
解决办法
461
查看次数

标签 统计

cocoa-touch ×2

ios ×2

nsurlsession ×2

networking ×1