我正在尝试添加一个功能,在某些推送时,我的计时器将启动,即使应用程序关闭,计时器也会继续。假设我的积分是 10,现在计时器开始了。一旦我关闭应用程序,也许下次如果我打开应用程序
1-如果在 20 分钟之前它会显示一个倒计时计时器正在运行
2-如果在应用程序再次启动 20 分钟后,它将增加点到 10。
现在什么样的计时器或课程可以帮助我做到这一点?
问候
我正在尝试添加一个功能,在某些推送时,我的计时器将启动,即使应用程序关闭,计时器也会继续。假设我的积分是 10,现在计时器开始了。一旦我关闭应用程序,也许下次如果我打开应用程序
1-如果在 20 分钟之前它会显示一个倒计时计时器正在运行
2-如果在应用程序再次启动 20 分钟后,它将增加点到 10。
现在什么样的计时器或课程可以帮助我做到这一点?
问候
在您的应用程序终止委托中,将时间保存在 NSUserdefaults 中,当您启动应用程序时,将其读回并继续添加时间。
NSTimer
即使您的应用程序处于后台,也不会持续超过600秒,请停止应用程序。
你可以这样做:
NSString *prevTimestamp = [NSString stringWithFormat:@"%d",
[[NSDate date] timeIntervalSince1970]];
将其存储prevTimestamp
在 中NSUserDefaults
,然后在返回应用程序时,
NSString *nowTimestamp = [NSString stringWithFormat:@"%d",
[[NSDate date] timeIntervalSince1970]];
时差将是[nowTimestamp floatValue] - [prevTimestamp floatValue]
在您的 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
}