3

我在用着

[[UIApplication sharedApplication] setIdleTimerDisabled: YES];

防止应用程序进入空闲状态,但是当我发出

[[UIApplication sharedApplication] setIdleTimerDisabled: NO];

该应用程序直接进入空闲状态。

此时有没有办法重新启动计时器?

4

2 回答 2

1

不,没有办法重新启动计时器。也许您应该考虑您的应用程序是否真的需要这样做。苹果引用:

“唯一应该禁用空闲计时器的应用程序是映射应用程序、游戏或具有零星用户交互的类似程序。”

如果您的应用确实需要关闭 idleTimer,那么它可能会一直关闭直到应用进入后台?

您可以尝试在定时事件结束时添加警报

UIAlertView *myAlert = [[UIAlertView alloc] initWithTitle:@"Timer Complete" message:@"Timer ended, well don you" delegate:nil cancelButtonTitle:@"OKAY" otherButtonTitles:nil];
[myAlert show];
[myAlert release];

如果您使用 ARC,请忽略该版本。这可能会点亮屏幕备份,那么也许您不需要弄乱空闲计时器。

于 2012-08-03T14:36:29.333 回答
0

对于提出这个问题的人来说,这显然为时已晚,但对于其他正在寻找的人来说,对我有用的是这样做:

[[UIApplication sharedApplication] setIdleTimerDisabled:NO];
[[UIApplication sharedApplication] setIdleTimerDisabled:YES];
[[UIApplication sharedApplication] setIdleTimerDisabled:NO];

一个接一个地包含所有三行会以某种方式重置计时器。因此,计时器不会在立即收到 setIdleTimerDisabled:NO 时变暗,而是需要一段时间才能变暗。

于 2016-06-09T20:19:39.637 回答