40

以下代码行可防止应用在空闲时间后自动锁定屏幕。

[UIApplication sharedApplication].idleTimerDisabled = YES; //write this in applicationDidFinishLaunching

它运行良好,直到 iOS 5.0。但是 iOS 5.1 不尊重这条线,并在空闲一段时间后锁定屏幕。如何解决这个恼人的问题?

谢谢。

编辑:

当它安装在 5.0.1 设备中时,相同的代码可以正常工作。但我不知道为什么它不适用于 5.1 设备。

4

7 回答 7

25

[UIApplication sharedApplication].idleTimerDisabled = YES;入驻

- (BOOL) application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions

很适合我。但是,有一个警告。我注意到,每次我调用相机实用程序拍摄快照时,idleTimerDisable都会在幕后设置为NO 。所以在我上传图片后,我不得不再次调用以下代码行:

[UIApplication sharedApplication].idleTimerDisabled = YES;

如果有更多地方需要相同的策略,我不会感到惊讶。到目前为止,这种方法对我来说没有问题。

于 2012-07-27T14:31:40.453 回答
25
[[UIApplication sharedApplication] setIdleTimerDisabled: YES];

在 iOS 5.1 上为我工作

于 2012-07-04T12:52:52.490 回答
5

应该没有区别。也许你有另一个错误..
请参阅iOS 5.0 到 5.1 API Diffs

于 2012-03-28T09:11:54.170 回答
3

重要提示:您应该仅在必要时设置此属性,并且应确保在不再需要时将其重置为 NO。大多数应用程序应该让系统在空闲计时器结束时关闭屏幕。这包括音频应用程序。通过适当使用音频会话服务,当屏幕关闭时,播放和录制不会中断。唯一应该禁用空闲计时器的应用程序是映射应用程序、游戏或具有零星用户交互的类似程序。

也许你超过了允许的清醒时间限制?

于 2012-03-28T09:18:27.713 回答
1

我知道它很旧,但我发现这很好,在 Swift 中你可以让它看起来像这样

application.idleTimerDisabled = true

谢谢你的回答!我现在使用 xcode 7 Beta 3 ( Swift 2 )

于 2015-07-11T10:47:00.723 回答
1

对于 Swift,我使用它在委托之外执行:

    UIApplication.sharedApplication().idleTimerDisabled = true
于 2016-08-19T05:47:40.623 回答
0

如果您的应用程序已注册某些后台任务(例如 GPS 位置更新),则可以正常工作。

于 2012-04-14T15:00:27.513 回答