2013-11-23 20 views
15

Câu hỏi là khoảng NSURLSessionNSURLSessionUploadTask.iOS: Liệu lực lượng bỏ ứng dụng có vô hiệu hóa tải lên nền bằng NSURLSession không?

Tôi đang tải tệp lớn lên máy chủ và nhận thấy rằng khi tôi buộc thoát ứng dụng tải lên toàn bộ nền chỉ dừng lại. Tuy nhiên, khi quá trình tải lên bắt đầu khi ứng dụng đang chạy qua Xcode/trình gỡ lỗi, thì quá trình tải lên của tôi chỉ hoàn thành tốt thậm chí khi tôi dừng ứng dụng đang chạy qua nút 'Dừng' Xcode. Tôi nghi ngờ rằng lực lượng bỏ ứng dụng bằng cách sử dụng Xcode mô phỏng một lệnh hệ thống iOS và không phải là một hành động của người dùng.

Vì vậy, câu hỏi của tôi là liệu có đúng là iOS sẽ hủy ngay lập tức NSURLSessionUploadTask khi người dùng buộc thoát khỏi ứng dụng không ?? Đối với một số lý do tôi ít nhất sẽ mong đợi một lỗi gọi lại cho ứng dụng, tuy nhiên không có gì xảy ra.

+0

Bạn đã nói rằng tác vụ nền chỉ chạy tệp sau khi bạn dừng ứng dụng bằng nút "dừng" Xcode, tôi nghi ngờ về điều này.
Tôi đã cố gắng nhưng không may mắn, nhiệm vụ nền đã bị dừng lại. Tôi nghĩ rằng khi ứng dụng chuyển sang nền, IOS chỉ tạm dừng nó. Khi ứng dụng thoát (không có vấn đề được lấy bởi IOS hoặc lực lượng bỏ bởi người dùng), nhiệm vụ nền tương đối dừng lại quá. – LeverkusenFan

+0

@LeverkusenFan - Tôi có thể xác nhận tác vụ nền đó sẽ chạy nếu ứng dụng không phải là do người dùng bỏ. – ymotov

Trả lời

13

Tôi có thể xác nhận bây giờ sau khi một loạt thử nghiệm nhiệm vụ nền đó sẽ chạy ok nếu ứng dụng được đưa vào nền. Tuy nhiên, nếu người dùng bỏ ứng dụng theo cách thủ công, thì iOS sẽ hủy tất cả các tác vụ nền được lên lịch. Vì vậy, lần sau khi ứng dụng được khởi chạy, tôi nhận được tất cả các cuộc gọi lại cho đại biểu với mã lỗi của tác vụ đã hủy.

Hy vọng nó sẽ giúp ai đó nhìn vào cùng một thứ.

+0

cảm ơn. Tôi kết luận rằng cũng như trên iOS 7.1.2. Sẽ kiểm tra trên iOS 8. –

+0

Ứng dụng có tiếp tục nếu ứng dụng chỉ gặp sự cố không? – Lukasz

+0

do đó không thể tạo (ví dụ: tác vụ nền tải lên tệp lớn) tác vụ nền tiếp tục chạy ngay cả khi người dùng chấm dứt quyền ứng dụng của chúng tôi :( – Merkurial

2

Từ Apple docs về thi công nền:

Nếu nhiệm vụ chưa hoàn thành và hệ thống chấm dứt ứng dụng của bạn, hệ thống tự động tiếp tục quản lý các nhiệm vụ trong nền. Nếu người dùng chấm dứt ứng dụng của bạn, hệ thống sẽ hủy mọi tác vụ đang chờ xử lý.

Các vấn đề liên quan