2013-03-02 21 views
6

Sto cercando di verificare il valore di backgroundTimeRemaining, ma ottengo un numero molto grande. Il valore della proprietà dovrebbe corrispondere a 10 min aprox e ho letto nella documentazione Apple here che tale valore è elevato quando l'app è in primo piano. Tuttavia, ottengo un valore elevato anche in background:iOS - backgroundTimeRemaining valore non mostra cosa previsto

- (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]; 
    } 
} 

Cosa potrei mancare? Grazie in anticipo

+1

Penso che l'attività in background non verrà avviata fino a quando l'evento 'applicationDidEnterBackground' è stato gestito completamente. – Felix

+0

Quindi ... come posso richiedere il valore 'backgroundTimeRemaining'? – AppsDev

+1

prova all'interno di un blocco dispatch_async sul thread principale – Felix

risposta

3

Il timer del watchdog è disabilitato quando si esegue da Xcode.

Principalmente ottengo valori sensibili (ad esempio 600) quando si esegue la connessione non collegata, ma ho ancora il valore occasionale strano.

+0

È strano dal momento che non è possibile testare i guasti. Vorrei che questo non fosse il caso. – strangetimes

Problemi correlati