制作倒计时器并在后台运行它

时间:2016-02-09 07:45:04

标签: ios cocoa-touch nstimer

我想在我的应用中添加一个静音按钮,当用户点击它时,他会选择静音的持续时间,而当启用静音时,用户将无法从我的应用中收到通知。

我认为NSTimer是一个不错的选择,但我怎么能用它做一个计时器?如何设置timer将在后台运行?

注意:我在后台使用位置监控。

2 个答案:

答案 0 :(得分:1)

我认为您不需要在后台运行计时器 - 或任何复杂的解决方案:

  • 当您的应用位于前台时(通常情况下)使用计时器。触发时取消静音模式。

  • 当您的应用切换到后台模式且定时器处于活动状态时,请取消定时器或让其运行,具体取决于您的需要。

  • 或者,当您的应用在后台模式下执行时,只是不发送通知。

  • 如果您的应用很快被暂停,您的代码无论如何都不会执行。

  • 如果您的应用在切换到前台时仍需要遵守静音状态,请计算激活静音模式时存储的日期时间值的持续时间以及当前日期时间并进行比较这是你的超时。

答案 1 :(得分:-1)

NSTimer可以在一定时间间隔后触发方法

首先声明一个NSTimer对象,比如" timer"

self.timer=[NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(targetMethod:) userInfo:nil repeats:YES];

现在这个计时器会在每1秒后触发targetMethod。时间间隔为1秒。现在定义目标方法

- (void) targetMethod: (NSTimer*)theTimer
{
    second++;

    if(second==60)
    {
        minute++;
        second=0;

    }
}

我为分钟和秒计数声明了两个int变量。现在每1秒后第二个会增加,每隔60秒,分钟就会增加。你可以尝试一下。