我有一个应用程序,必须保持清醒状态直到倒计时结束,但当它达到预定的睡眠时间时,它将进入“睡眠模式”。
在我的应用程序中,我有推迟睡眠的选项,因此用户可以禁用/启用它。
如何以编程方式实现?
我有一个应用程序,必须保持清醒状态直到倒计时结束,但当它达到预定的睡眠时间时,它将进入“睡眠模式”。
在我的应用程序中,我有推迟睡眠的选项,因此用户可以禁用/启用它。
如何以编程方式实现?
[UIApplication sharedApplication].idleTimerDisabled = YES;
在Swift中: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类的更多内容。
在Swift 3中,现在禁用空闲计时器的方法是:
UIApplication.shared.isIdleTimerDisabled = true
要重新启用空闲计时器,只需:
UIApplication.shared.isIdleTimerDisabled = false
此外,请注意在Swift中不提供YES
和NO
,您必须使用true
或false
(而不是先前的答案)。
iOS 13, Swift 5.5.1+版本可以在 SceneDelegate.swift
中禁用空闲计时器。
func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
UIApplication.shared.isIdleTimerDisabled = true
}
AppDelegate.swift
文件中精确地完成此操作 - 您应该在application
函数内添加UIApplication.shared.isIdleTimerDisabled = true
,以便结果如下所示:func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
UIApplication.shared.isIdleTimerDisabled = true
return true
}
[UIApplication sharedApplication]
仅指 你的 应用程序的 UIApplication 对象。 - jrturton