我正在尝试添加一项功能,在某些推送,我的计时器将启动,甚至应用程序关闭,计时器将继续。让我说我的积分是10,现在计时器启动。一旦我关闭应用程序,也许下次如果我打开应用程序
1-如果在20分钟之前它将显示倒计时器正在运行
2-如果在应用程序再次启动20分钟后,它会将点数添加到10。
现在什么样的计时器或班级可以帮助我做到这一点?
此致
答案 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
}