IOS:如何防止重新启用idleTimer时屏幕立即变灰

IOS:如何防止重新启用idleTimer时屏幕立即变灰,ios,idle-timer,Ios,Idle Timer,我正在开发一款主要使用加速计输入的iOS游戏。以前的程序员在启动时将idleTimerDisabled设置为YES,并保持不变。我最近做了一个改变,使得空闲计时器只在游戏中被禁用,并且在关卡结束时被重新启用 问题是,如果该关卡的播放时间长于用户的idleTimer设置,则当我将idleTimerDisabled设置为NO时,屏幕将变灰。是否有方法在重新启用时重置计时器,以便在idleTimer使屏幕变暗之前出现完整的时间增量?禁用计时器上的空闲计时器,用这样的东西 [self performSe

我正在开发一款主要使用加速计输入的iOS游戏。以前的程序员在启动时将idleTimerDisabled设置为YES,并保持不变。我最近做了一个改变,使得空闲计时器只在游戏中被禁用,并且在关卡结束时被重新启用


问题是,如果该关卡的播放时间长于用户的idleTimer设置,则当我将idleTimerDisabled设置为NO时,屏幕将变灰。是否有方法在重新启用时重置计时器,以便在idleTimer使屏幕变暗之前出现完整的时间增量?

禁用计时器上的空闲计时器,用这样的东西

[self performSelector:@selector(enableIdleTimer) withObject:nil afterDelay:4];

- (void)enableIdleTimer { 

    [[UIApplication sharedApplication] setIdleTimerDisabled:NO];
}
或者,这是一种更现代、更简单的方法:

dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(4 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
    [[UIApplication sharedApplication] setIdleTimerDisabled:NO];
});

我早就想到了。问题是玩家可以马上开始一个新的关卡。。。然后在关卡中会出现延时选择器,这可能会导致空闲计时器在游戏过程中使屏幕变灰。然后你需要创建一个计时器,并在这种情况下使其无效。我想。。。在重新启用之前,我可以进行-(void)enableIdleTimer方法检查,看看游戏是否处于游戏状态…谢谢!!当然可以顺便说一句,谢谢你这么快的回复!