如何在iOS中以编程方式禁用/启用睡眠模式?

时间:2012-09-30 11:46:12

标签: ios

我有一个应用程序,必须保持清醒,直到倒计时结束,但只要它达到分配的睡眠时间,它将进入“睡眠模式”。

在我的应用程序中,我可以选择推迟睡眠,因此用户可以禁用/启用它。

我如何以编程方式执行此操作?

3 个答案:

答案 0 :(得分:357)

您可以按如下方式禁用空闲计时器;

在Objective-C中:

[UIApplication sharedApplication].idleTimerDisabled = YES;

在斯威夫特:

UIApplication.sharedApplication().idleTimerDisabled = true

在Swift 3.0& Swift 4.0:

UIApplication.shared.isIdleTimerDisabled = true

将其重新设置为NOfalse以重新启用睡眠模式。

例如,如果您在离开视图之前需要它,可以通过覆盖viewWillDisappear来重新设置它:

override func viewWillDisappear(_ animated: Bool) {
    UIApplication.shared.isIdleTimerDisabled = false
}

有关UIApplication Class的更多信息。

答案 1 :(得分:18)

在Swift 3中,要禁用空闲计时器,现在是:

UIApplication.shared.isIdleTimerDisabled = true

要重新打开空闲计时器,只需:

UIApplication.shared.isIdleTimerDisabled = false

此外,请注意,YESNO在Swift中不可用,您必须使用truefalse(与之前的答案相对)。< / p>

答案 2 :(得分:1)

iOS 13,Swift 5,5.1 + 以禁用空闲计时器。在SceneDelegate.swift中。

 func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
     UIApplication.shared.isIdleTimerDisabled = true
 }