2012-04-11 143 views
0

嗨,我想做一個簡單的定時器惠特選擇器和標籤。iphone定時器倒計時在後臺

一切工作很好,直到我的應用程序在後臺進行,我不明白爲什麼?我忘了什麼?

這裏我的.m的一部分設置倒計時,並計算其

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

     } 

} 

回答

0

你行 -

[UIApplication sharedApplication].idleTimerDisabled = YES; 

永遠不會進行,因爲你有一個「迴歸」;在前一行。

+0

你是對的,但該行阻止自動待機不是背景,當我把應用程序在多任務倒計時停止。 – Acunamatata 2012-04-11 17:26:36

+0

還有其他想法嗎? – Acunamatata 2012-04-11 22:00:12