计算iphone应用程序的背景和前景之间的时间?
问题描述:
我有多任务问题。我应该知道iPhone在将应用程序放到背景后经过了多少秒钟。我尝试使用带有NSDate对象的applicationDidEnterBackground
和applicationWillEnterForeground
,但无法成功获取时间。计算iphone应用程序的背景和前景之间的时间?
任何人都可以帮助我吗?
编辑:
- (void)applicationDidEnterBackground:(UIApplication *)application {
backgroundDate = [NSDate date];
NSLog(@"background time= %@", backgroundDate);
}
- (void)applicationWillEnterForeground:(UIApplication *)application {
//– timeIntervalSinceNow
NSLog(@"background time2= %@", backgroundDate);
NSDate *date = [NSDate date];
NSLog(@"foreground time= %@", date);
}
日志:
2011-03-23 12:47:58.405 Sanal Market[1783:207] background time= 2011-03-23 10:47:58 +0000 2011-03-23 12:48:00.730 Sanal Market[1783:207] background time2= <CAContextImpl: 0x5416e10> 2011-03-23 12:48:00.731 Sanal Market[1783:207] foreground time= 2011-03-23 10:48:00 +0000
答
您必须保留backgrounddate,[NSDate date]
返回一个自动释放的对象,并自动释放池已经被抽干后,该走了。
尝试
[backgroundDate release];
backgroundDate = [[NSDate date] retain];
或创建一个属性,并使用二传手。 self.backgroundDate = [NSDate date];
如果你想计算,即使应用程序被迫从操作系统退出,而这是在后台,你应该日期保存到NSUserDefaults的时间:
// save date in userdefaults
[[NSUserDefaults standardUserDefaults] setObject:[NSDate date] forKey:@"goingToBackGroundDate"];
// get date back to calculate time in background
NSDate *goingToBackGroundDate = [[NSUserDefaults standardUserDefaults] objectForKey:@"goingToBackGroundDate"];
+0
谢谢大家的帮助 – serhats 2011-03-23 12:03:23
哪来的问题? – ryyst 2011-03-23 10:28:18
我想serhats想知道如何获得在applicationDidEnterBackground和applicationWillEnterForeground事件之间传递的持续时间。 – 2011-03-23 10:35:46
这是rijht Vaibhav Tekam。问题是我不知道该怎么做。 – serhats 2011-03-23 10:38:35