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

我想添加一个静音button到我的应用程序,当用户点击它,他select一个持续时间的静音,而静音启用用户不会从我的应用程序通知。

我以为NSTimer是一个不错的select,但是我怎样才能做出一个计时器呢? 我怎么能设置timer将在后台运行?

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

我不认为你需要在后台运行计时器 – 或任何复杂的解决scheme:

  • 当你的应用程序在前台(像往常一样)使用计时器。 发射时取消静音模式。

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

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

  • 如果您的应用在不久之后被暂停,您的代码将不会执行。

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

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

首先声明一个NSTimer对象,说“定时器”

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

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

 - (void) targetMethod: (NSTimer*)theTimer { second++; if(second==60) { minute++; second=0; } } 

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