Tôi có một ứng dụng mà tôi phải tải lên các video lớn lên nhóm s3 Amazon. Tôi đang sử dụng NSOperations được quy định bởi một NSOperationQueue để chạy các tác vụ đồng thời.Mở rộng thời gian chờ của Nhiệm vụ nền trong khi tải lên Video lớn iOS
Tôi không gặp sự cố khi tải lên các video nhỏ (nhỏ hơn 200 Mb). Nhưng vấn đề là khi tôi cố tải lên một video lớn, sau 10 phút thì quá trình tải lên bị gián đoạn.
Tôi đã sử dụng beginBackgroundTaskWithExpirationHandler:^
để có cửa sổ 10 phút. Cách thích hợp để tôi có thể kéo dài khoảng thời gian chờ này là gì?
Apple sẽ từ chối ứng dụng nếu tôi bằng cách nào đó quản lý để mở rộng thời gian chờ này?
Hiện nay tôi có đoạn mã sau vào AppDelegate
của tôi mà tôi đã xây dựng đề cập đến liên kết iPhone - Backgrounding to poll for events
- (void)applicationDidEnterBackground:(UIApplication *)application
{
UIApplication* app = [UIApplication sharedApplication];
dispatch_block_t expirationHandler;
expirationHandler = ^{
bgTask = [app beginBackgroundTaskWithExpirationHandler:expirationHandler];
};
bgTask = [app beginBackgroundTaskWithExpirationHandler:expirationHandler];
}
Với đoạn mã này tôi thấy rằng nhiệm vụ nền được không bao giờ bị gián đoạn. Như bạn có thể thấy bên trong trình xử lý hết hạn, tôi đã khởi tạo một sự kiện tác vụ nền khác dẫn đến một nhiệm vụ chạy vô hạn. Mặc dù, tôi có thể viết logic để kết thúc tác vụ nền sau khi quá trình tải lên của tôi kết thúc, nhưng tôi có nghi ngờ về cách tiếp cận này.
Các bạn nghĩ sao?
Đây có phải là hack bằng bất kỳ phương tiện nào không? Liệu Apple có từ chối ứng dụng cho cách tiếp cận sau đây không?
bgTask = [ứng dụng startBackgroundTaskWithExpirationHandler:^(void) { [self.queue waitUntilAllOperationsAreFinished]; [ứng dụng endBackgroundTask: bgTask]; bgTask = UIBackgroundTaskInvalid; }]; Còn anh chàng này thì sao ?? – Xcoder
Các bạn không có quyền tranh luận với câu trả lời ngu ngốc và bình luận ngu ngốc. Thành thật mà nói, đây là một chủ đề để tranh luận về. Xin các bạn, tôi sẽ yêu cầu các bạn thảo luận mở, để chúng ta có thể chú ý đến mọi chi tiết của mọi thứ. Cảm ơn –
tôi có thể sử dụng NSOperationQueue để tải lên video lớn trong nền, táo sẽ từ chối ứng dụng của tôi ?? –