你可以试试这个,子类UIApplication
和实施main.m
更改添加以下代码
@implementation MyApplication
- (instancetype)init {
self = [super init];
if (self) {
[self reset];
}
return self;
}
- (void)reset {
[NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(logout) object:nil];
[self performSelector:@selector(logout) withObject:nil afterDelay:30*60];
}
- (void)sendEvent:(UIEvent *)event {
[super sendEvent:event];
[self reset];
NSLog(@"event detected");
}
- (void)logout {
NSLog(@"logout now");
}
@end
则实现这样
return UIApplicationMain(argc, argv, NSStringFromClass([MyApplication class]), NSStringFromClass([AppDelegate class]));
这里正在发生的事情是,- (void)sendEvent:(UIEvent *)event
方法将被调用在每个用户活动之后,然后我们在30分钟后注册执行选择器请求。一旦用户在30分钟内触摸屏幕,取消之前的请求并注册新的请求。
谢谢生病,当我有时间试试这个。仍在研究别的东西。它看起来正是我所需要的。因此,如果我查看'''UIApplication''类,我应该看到一个名为'' - - void(void)senEvent)'''每当应用程序中发生事件时调用它。我想知道该方法将被调用的事件的范围以及该方法如何与系统进行交互 – Esko918
此事件与其余应用程序的交互是在ui应用程序类中处理的。这就是为什么我们调用超级方法。如果你评论超级通话什么都不会发生我猜(不检查这种情况) – Johnykutty
谢谢你,我刚刚实现了这个现在它的工作原理 – Esko918