我正在制作时钟应用程序;用秒表和计时器。当我的应用程序进入后台(即用户进入主屏幕,切换到另一个应用程序或锁定手机)时,计时器和秒表停止计数。我知道有几个应用程序在进入后台后继续工作。
我可以更改设置以保持其正常运行吗?
答案 0 :(得分:0)
创建像
这样的变量self.timeBeforeGoingBackgound = [NSDate date];
然后你可以花时间使用
[[NSDate date] timeIntervalSinceDate:self.timeBeforeGoingBackgound];
答案 1 :(得分:0)
确切问题的简短答案是否您无法让应用程序在后台模式下执行某些操作。
Here you can find Apple's Doc, which says what can work in background.
同样适用于您的情况,当调用此AppDelegate的方法NSUserDefaults
并在applicationDidEnterBackground
方法
答案 2 :(得分:0)
当你进入后台时,你需要保存你的状态,然后当你回到前台时恢复状态。这意味着定时器和实际定时数据。
答案 3 :(得分:0)
为George的回答添加代码:
在applicationDidEnterBackground
NSDate *currentDate= [NSDate date];
[[NSUserDefaults standardUserDefaults] setObject:currentDate forKey:@"backgroundDate"];
在applicationDidBecomeActive
NSDate *dateWhenAppGoesBg= (NSDate *)[[NSUserDefaults standardUserDefaults] objectForKey:@"backgroundDate"];
NSTimeInterval timeSpentInBackground = [[NSDate date] timeIntervalSinceDate:dateWhenAppGoesBg];
现在您可以在几秒钟内获得timeSpentInBackground
,您可以从中更新用户界面或执行其余任务。