Tôi đang cố gắng kiểm tra giá trị của backgroundTimeRemaining
, nhưng tôi nhận được một số rất lớn. Giá trị của thuộc tính được cho là tương ứng với 10 phút aprox và tôi đã đọc trong tài liệu của Apple here rằng giá trị đó lớn khi ứng dụng ở nền trước. Tuy nhiên, tôi nhận được một giá trị lớn ngay cả khi ở chế độ nền:iOS - backgroundTimeGiá trị mặc định không hiển thị những gì được mong đợi
- (void)applicationDidEnterBackground:(UIApplication *)application
{
bgTask = [application beginBackgroundTaskWithExpirationHandler:^{
[application endBackgroundTask:bgTask];
bgTask = UIBackgroundTaskInvalid;
}];
// Background task
NSTimeInterval timeRemaining = [UIApplication sharedApplication].backgroundTimeRemaining;
NSLog(@"Background time remaining: %f seconds (%d mins)", timeRemaining, (int)(timeRemaining/60));
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
NSTimeInterval timeRemaining = [UIApplication sharedApplication].backgroundTimeRemaining;
NSLog(@"Background time remaining: %f seconds (%d mins)", timeRemaining, (int)(timeRemaining/60));
// Perform task
// Finished
if (bgTask != UIBackgroundTaskInvalid) {
[application endBackgroundTask:bgTask];
bgTask = UIBackgroundTaskInvalid;
}
});
// Start location manager
if ([CLLocationManager locationServicesEnabled]) {
[locationManager startUpdatingLocation];
}
}
Tôi có thể thiếu gì? Cảm ơn trước
Tôi nghĩ tác vụ nền sẽ không được bắt đầu cho đến khi sự kiện 'applicationDidEnterBackground' được xử lý hoàn toàn. – Felix
Sau đó ... làm thế nào tôi có thể yêu cầu giá trị 'backgroundTimeRemaining'? – AppsDev
thử trong khối dispatch_async trên chủ đề chính – Felix