我有一个应用程序,需要注销闲置10分钟的用户,即app最小化或在后台运行,是否可能?我搜索了很多但是无法获得解决方案。如果有可能,请帮助我。 谢谢。
答案 0 :(得分:2)
在appdelegate中添加属性,用于存储应用进入后台的时间。
赞@property (nonatomic, strong) NSDate *backgroundedDate;
然后在applicationDidEnterBackground:
中将日期设置为当前日期:
- (void)applicationDidEnterBackground:(UIApplication *)application {
self.backgroundedDate = [NSDate date];
}
然后当应用程序返回前台时检查时差:
- (void)applicationWillEnterForeground:(UIApplication *)application {
if (self.backgroundedDate) {
BOOL isTimedout =[self.backgroundedDate timeIntervalSinceNow] <= -(10 * 60);
if (isTimedout) {
[yourApiClass logou];
}
}
}
答案 1 :(得分:0)
您可以做这样的事情
static dispatch_once_t once;
dispatch_once(&once, ^ {
NSLog(@"Do it once");
self.backgroundedDate = [NSDate date];
});
呼叫应用程序WillEnterForeground
- (void)applicationWillEnterForeground:(UIApplication *)application {
if (self.backgroundedDate) {
NSLog(@"Forground %@",[NSDate date]);
BOOL isTimedout = [self.backgroundedDate timeIntervalSinceNow] <= -(5 * 60);
if (isTimedout) {
//Do your work
}
}
}