2012-04-11 10 views
0

Hallo ich will einen einfachen Timer mit Picker und Label machen.iPhone Timer Countdown im Hintergrund

alles super arbeiten, bis mein App im Hintergrund gehen, ich verstehe nicht, warum? Ich habe etwas vergessen?

hier der Teil meines .m, die den Countdown gesetzt und berechnen es

- (void)tick { 

//sottraiamo uno dal countdown 
countdown--; 

//controlliamo che il valore di countdown sia minore di zero 
if (countdown < 0) { 
    NSLog(@"controllo"); 

    //se è minore di zero allora il timer è finito 
    //Incvochiamo l'azione playSound per suonare l'allarme 
    [self playSound]; 

    //Invochiamo il metodo fermaIlTimer per fermare il timer 
    [self fermaIlTimer]; 

    //Arrestiamo il codice 
    return; 

    //Inibisce lo standby 
    [UIApplication sharedApplication].idleTimerDisabled = YES; 
} 



//Assegnamo alla proprietà text della UILabel la stringa restituita dal metodo formattazioneLabel 
self.countdownLabel.text = [self formattazioneLabel]; 
} 





#pragma mark Azioni 

//Impostiamo l'azione del pulsante newTime 
- (IBAction)newTime:(id)sender { 

    //controlliamo se sta andando e se si fermiamo il blocco di codice con il return 
    if (isRunning) return; 

    //Impostiamo il countdown con il metodo dateWithTimeIntervalSinceNow prendendo il tempo dal valore della ruota di selezione + 1 
    countdown = [self getPickerTime]; 

    //Assegnamo alla proprietà text della UILabel la stringa restituita dal metodo formattazioneLabel 
    self.countdownLabel.text = [self formattazioneLabel]; 
} 

//Start 
- (IBAction)start:(id)sender { 

    if (isRunning == NO && isPlay == NO){ 


    //Impostiamo su si il booleano isRunning 
    isRunning = YES; 

    //Impostiamo il countdown con il metodo personalizzato 
    countdown = [self getPickerTime]; 

    //Invochiamo il primo tick 
    [self tick]; 

    //Avviamo la data con il metodo scheduledTimerWithTimeInterval che ogni secondo invoca il metodo tick 
    self.theTimer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(tick) userInfo:nil repeats:YES]; 

    //imposta la font di rosso 
    self.countdownLabel.textColor = [UIColor redColor]; 

     //modifiche fondo 

     fondo.image = [UIImage imageNamed: @"Bck_timerII.png"]; 
     myPicker.hidden = YES; 
     copertura.hidden = YES; 
     start.hidden = YES; 
     stop.hidden = NO; 
     pausa.hidden = NO; 

     } 

} 

Antwort

0

Ihre Linie -

[UIApplication sharedApplication].idleTimerDisabled = YES; 

wird nie durchgeführt, wie Sie haben "Rückkehr"; in der vorherigen Zeile.

+0

Sie haben Recht, aber diese Linie blockieren die automatische Standby nicht den Hintergrund, wenn ich die app setzen in den Countdown-Stopp-Multitasking. – Acunamatata

+0

Irgendeine andere Idee? – Acunamatata