And*_*ndy 6 iphone objective-c ios
我有一个iPhone应用程序,允许用户登录和与Web服务交互.我希望用户能够在一段时间不活动后自动注销...更具体地说,如果应用程序已经在后台工作超过一段时间(例如1小时).
理想情况下,我想在App Delegate方法applicationWillEnterForeground中运行一个检查,检查应用程序在后台的时间长度,然后是否超过允许的时间,将它们带到登录屏幕.
我将如何在上述方法中运行此检查?我会很感激一些示例代码.
如果这不是达到我要求的最佳方式,那么建议也欢迎!
提前谢谢了
安迪
Rok*_*arc 12
你可以用这个:
- (void)applicationWillResignActive:(UIApplication *)application
{
NSDate *thisMagicMoment = [NSDate date];
[[NSUserDefaults standardUserDefaults] setObject:thisMagicMoment forKey:@"lastMagicMoment"];
[[NSUserDefaults standardUserDefaults] synchronize];
}
- (void)applicationDidBecomeActive:(UIApplication *)application
{
NSDate *thisMagicMoment = [NSDate date];
NSDate *lastMagicMoment = (NSDate *)[[NSUserDefaults standardUserDefaults] objectForKey:@"lastMagicMoment"];
if (lastMagicMoment==nil)
{
NSLog (@"First launch!");
}
else
{
NSTimeInterval timeOfNoMagic = [thisMagicMoment timeIntervalSinceDate:lastMagicMoment]/3600.0;
NSLog (@"Application was in background for %.1f hours", timeOfNoMagic);
//do your stuff - treat NSTimeInterval as double
if (timeOfNoMagic > 1.0)
{
//logout
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1387 次 |
| 最近记录: |