2013-03-02 24 views
6

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

+1

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

+0

Sau đó ... làm thế nào tôi có thể yêu cầu giá trị 'backgroundTimeRemaining'? – AppsDev

+1

thử trong khối dispatch_async trên chủ đề chính – Felix

Trả lời

3

Bộ đếm giờ giám sát bị tắt khi chạy từ Xcode.

Tôi chủ yếu nhận được các giá trị hợp lý (ví dụ: 600) khi chạy không được kết nối, nhưng tôi vẫn nhận được giá trị kỳ lạ không thường xuyên.

+0

Điều đó thật kỳ lạ vì bạn không thể thử nghiệm với những thất bại. Tôi ước điều này không đúng. – strangetimes

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