我想实现像Windows会话过期这样的超时功能。 我的情况是如果我在30分钟内没有触摸screes我需要重定向登录屏幕,其他明智的正常需要工作。
[[NSNotificationCenter defaultCenter]addObserver:self
selector:@selector(applicationDidTimeout:)name:10 object:nil];
然后实现方法,
-(void)applicationDidTimeout:(NSNotification*)notif
{
NSLog(@"10 mints looping");
//calling login screen.
}
但如果我在视图中工作也会到期。如何避免这种情况。请任何人建议我实现这一点。
抱歉英语和文字形成不佳。
答案 0 :(得分:1)
试试这个。
实现UIApplication的子类来监视所有的触摸 应用
并在该类中实现以下代码
- (void)sendEvent:(UIEvent *)event {
if (event) {
[super sendEvent:event];
NSSet *allTouches = [event allTouches];
if ([allTouches count] > 0) {
UITouchPhase phase = ((UITouch *)[allTouches anyObject]).phase;
if (phase == UITouchPhaseBegan){
[self resetIdleTimer];
}
}
}
}
更多详情:
- (void)sendEvent:(UIEvent *)event
参数
event:封装有关事件信息的UIEvent对象,包括涉及的触摸。
讨论
子类可以覆盖此方法以进行拦截 传入的事件。任何截获的事件都应该由 在检查截获的事件后调用[super sendEvent:event]。
- (void)resetIdleTimer
是您可以安排计时器的方法。
继续......:)