繁体   English   中英

iPhone计时器倒计时在后台

[英]iphone Timer countdown in background

嗨,我想做一个简单的计时器白领和标签。

一切正常,直到我的应用程序在后台运行,我不明白为什么? 我忘记了什么?

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

        }

}

您的专线-

[UIApplication sharedApplication].idleTimerDisabled = YES;

永不执行,因为您有一个“返回”; 在上一行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM