Tôi đang làm một số xử lý khi ứng dụng vào trạng thái nền, tôi đã đặt nó dưới beginBackgroundTaskWithExpirationHandler() và do đó, nên được phân bổ mười phút cho cùng. Tuy nhiên, tôi tin rằng ứng dụng đang bị tạm ngưng trước đó. Tác vụ tôi đang thực hiện là bộ nhớ và CPU chuyên sâu, vì vậy có thể hệ điều hành đang đặt ứng dụng của tôi để tạm ngưng trạng thái không?
Nếu có, có cách nào vượt qua những hạn chế này không. (Tôi đang mở để sử dụng API riêng).Chạy một tác vụ chạy nền hữu hạn dài
Đây là đoạn mã để bắt đầu nhiệm vụ nền:
if([[UIDevice currentDevice] respondsToSelector:@selector(isMultitaskingSupported)]){
if([[UIDevice currentDevice] isMultitaskingSupported]){
__block UIBackgroundTaskIdentifier bgTask;
UIApplication *application = [UIApplication sharedApplication];
bgTask = [application beginBackgroundTaskWithExpirationHandler:^{
[application endBackgroundTask:bgTask];
bgTask = UIBackgroundTaskInvalid;
}];
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
[self captureImage];
[application endBackgroundTask:bgTask];
bgTask = UIBackgroundTaskInvalid;
});
}
}
Bạn có thể hiển thị mã bạn sử dụng để bắt đầu tác vụ nền không? – Nate
Làm thế nào địa ngục này * không phải là một câu hỏi thực *? – Nate