【发布时间】:2017-04-01 01:32:44
【问题描述】:
我想在我的应用程序中实现一个功能,以便当用户 5 分钟不使用应用程序时,应用程序从头开始运行,而不是用户停止的地方。
我找到了 plist 属性“应用程序不在后台运行”,但这个功能让应用程序始终从一开始就运行。有没有办法可以为这个 plist 属性设置一个计时器或者用伪代码做类似的事情?
更新:
上面提到的方法都是正确的。但是,我正在寻找一种解决方案,让应用程序在应用程序进入后台后注意到空闲时间。 (即按下主页按钮后)。希望你能帮帮我
解决方案:
我找到了解决方案。首先,我将 NSDate 保存在
- (void)applicationDidEnterBackground:(UIApplication *)application
{
//save date
NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults];
[[NSUserDefaults standardUserDefaults] setObject:NSDate.date forKey:@"date"];
[defaults synchronize];
}
然后,当我在应用程序中返回时,我会将保存的日期与实际日期进行比较。如果时间间隔大于 5 分钟。 App进入密码viewcontroller,强制用户重新登录!
- (void)applicationDidBecomeActive:(UIApplication *)application
{
//calculate difference in time
NSDate *time = [[NSUserDefaults standardUserDefaults] objectForKey:@"date"];
NSTimeInterval timeInterval = [[NSDate date] timeIntervalSinceDate:time];
if(timeInterval >= 300){
Password *vc = [[Password alloc] init];
self.window.rootViewController = vc;
[vc release];
[self.window makeKeyAndVisible];
}
}
【问题讨论】: