iphone定时器倒计时在后台

时间:2012-04-11 17:02:08

标签: iphone timer countdown

嗨,我想制作一个简单的计时器选择器和标签。

一切顺利,直到我的应用程序进入后台,我不明白为什么?我忘了什么?

这里我的.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;

        }

}

1 个答案:

答案 0 :(得分:0)

你的行 -

[UIApplication sharedApplication].idleTimerDisabled = YES;

永远不会执行,因为你有“回归”;在上一行。