将定时器添加到iPhone

时间:2013-01-18 13:34:29

标签: iphone objective-c cocoa-touch

我正在尝试添加一项功能,在某些推送,我的计时器将启动,甚至应用程序关闭,计时器将继续。让我说我的积分是10,现在计时器启动。一旦我关闭应用程序,也许下次如果我打开应用程序

1-如果在20分钟之前它将显示倒计时器正在运行

2-如果在应用程序再次启动20分钟后,它会将点数添加到10。

现在什么样的计时器或班级可以帮助我做到这一点?

此致

3 个答案:

答案 0 :(得分:1)

在你的应用程序终止委托中节省NSUserdefaults中的时间,当你laucnch应用程序读回来并继续添加时间。

答案 1 :(得分:1)

即使您的应用处于后台

NSTimer也不会超过 600 秒,其余时间会终止该应用。

你宁愿这样做:

NSString *prevTimestamp = [NSString stringWithFormat:@"%d", 
                         [[NSDate date] timeIntervalSince1970]];

将此prevTimestamp存储在NSUserDefaults中,并在返回应用时

NSString *nowTimestamp = [NSString stringWithFormat:@"%d", 
                         [[NSDate date] timeIntervalSince1970]];

时差将为[nowTimestamp floatValue] - [prevTimestamp floatValue]

答案 2 :(得分:0)

在您的applicationdelegate中,您有以下功能:

-(void)applicationDidEnterBackground:(UIApplication *)application;

-(void)applicationWillEnterForeground:(UIApplication *)application;

通过这些功能,您可以通过以下方式跟踪时间:

-(void)applicationDidEnterBackground:(UIApplication *)application
{
    backgroundTime = [[NSDate date] timeIntervalSince1970]; 
}

-(void)applicationWillEnterForeground:(UIApplication *)application
{

    double timetoAppend = [[NSDate Date] timeIntervalSince1970] - backgroundTime];

    // from here you need to add the timetoAppend to your own variable

}