Tôi gặp sự cố khi nói đến phần phụ trợ chậm và tải xuống dữ liệu với cấu hình nền.NSURLSessionDownloadTask tiếp tục thử lại khi sử dụng Cấu hình nền
NSURLSessionConfiguration *sessionConfig = [NSURLSessionConfiguration backgroundSessionConfiguration:identifier];
_backgroundSession = [NSURLSession sessionWithConfiguration:sessionConfig delegate:self delegateQueue:nil];
NSURLSessionDownloadTask *downloadTask = [_backgroundSession downloadTaskWithURL:URL];
[downloadTask resume];
Nếu kết nối được thiết lập nhưng phải mất hơn 60 giây để kết nối gửi dữ liệu hết thời gian chờ. Điều đó là tốt. Tuy nhiên, hành vi mà tôi gặp phải là tôi không gặp lỗi. Phiên này chỉ gửi một yêu cầu mới. "Cung cấp lại dữ liệu cho tôi". Tôi không biết chuyện này xảy ra ở đâu. Không có trong mã của tôi và không có phương thức đại biểu nào được gọi là tôi biết. Tôi chỉ có quyền truy cập vào nhật ký máy chủ. Máy chủ mất khoảng 68 giây để gửi dữ liệu trở lại nhưng ứng dụng chỉ bỏ qua nó vì nó đang chờ yêu cầu mới.
Một giải pháp là tăng giá trị thời gian chờ. Nhưng tôi không thích nó và nó chỉ hoạt động cho iOS 7. Không phải iOS 8.
sessionConfig.timeoutIntervalForRequest = 10 * 60.0;
Có ai có cái nhìn sâu sắc về điều này? Tôi tìm thấy số này link about timeout issue for background session tại đây trên stackoverflow. Đó là 10 tháng tuổi nhưng không có giải pháp, chỉ có những người đồng ý.
Câu hỏi: tại sao bạn phân biệt giữa iOS 8 và iOS 7 sau khi tất cả? Bạn không thể chỉ đặt cả timeoutIntervalForRequest và timeoutInterval? – dlinsin