我有一个应用程序,必须保持清醒,直到倒计时结束,但只要它达到分配的睡眠时间,它将进入“睡眠模式”。
在我的应用程序中,我可以选择推迟睡眠,因此用户可以禁用/启用它。
我如何以编程方式执行此操作?
答案 0 :(得分:357)
您可以按如下方式禁用空闲计时器;
在Objective-C中:
[UIApplication sharedApplication].idleTimerDisabled = YES;
在斯威夫特:
UIApplication.sharedApplication().idleTimerDisabled = true
在Swift 3.0& Swift 4.0:
UIApplication.shared.isIdleTimerDisabled = true
将其重新设置为NO
或false
以重新启用睡眠模式。
例如,如果您在离开视图之前需要它,可以通过覆盖viewWillDisappear来重新设置它:
override func viewWillDisappear(_ animated: Bool) {
UIApplication.shared.isIdleTimerDisabled = false
}
有关UIApplication Class的更多信息。
答案 1 :(得分:18)
在Swift 3中,要禁用空闲计时器,现在是:
UIApplication.shared.isIdleTimerDisabled = true
要重新打开空闲计时器,只需:
UIApplication.shared.isIdleTimerDisabled = false
此外,请注意,YES
和NO
在Swift中不可用,您必须使用true
或false
(与之前的答案相对)。< / 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
}