iOS后台模式和NStimer

时间:2014-03-08 15:46:46

标签: ios background nstimer

我正在创建一个应用程序,它可以作为一个拳击计时器,计算轮次并在每个结束时播放声音。 问题是当应用程序进入后台模式时,NSTimer会停止。在应用程序商店中有一些拳击计时器,所以我有一些方法可以实现。

1 个答案:

答案 0 :(得分:1)

您应该在转到后台之前存储当前时间(在AppDelegate中):

- (void)applicationWillResignActive:(UIApplication *)application
{
     self.startTime = [NSDate date];
    .
    .
    .
    // Rest of your code
}

然后在app激活时执行相同的操作:

- (void)applicationDidBecomeActive:(UIApplication *)application
{
    self.endTime = [NSDate date];
    .
    .
    .
    // Rest of your code
}

然后你可以减去它们,找出应用程序在后台的数量,并根据它做你想做的事。

如果您想在应用程序位于后台时执行某些操作,则应在应用的Background Mode文件(或.plist部分)中启用Capabilities,这通常用于VOIP应用程序或类似的东西。