你可以試試這個,子類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