我有一个应用程序必须保持清醒直到倒计时结束,但只要达到分配的睡眠时间,它就会进入“睡眠模式”。
在我的应用程序中,我可以选择推迟睡眠,因此用户可以禁用/启用它。
我如何以编程方式进行操作?
我有一个应用程序必须保持清醒直到倒计时结束,但只要达到分配的睡眠时间,它就会进入“睡眠模式”。
在我的应用程序中,我可以选择推迟睡眠,因此用户可以禁用/启用它。
我如何以编程方式进行操作?
您可以按如下方式禁用空闲计时器;
在 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 类。
在 Swift 3 中,要禁用空闲计时器,现在是:
UIApplication.shared.isIdleTimerDisabled = true
要重新打开空闲计时器,只需:
UIApplication.shared.isIdleTimerDisabled = false
此外,请注意YES
andNO
在 Swift 中不可用,您必须使用true
or false
(与之前的答案相反)。
iOS 13、Swift 5,5.1+禁用空闲计时器。在SceneDelegate.swift
.
func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
UIApplication.shared.isIdleTimerDisabled = true
}
在 Swift 3 中可以做到这一点的确切位置是AppDelegate.swift
- 您应该UIApplication.shared.isIdleTimerDisabled = true
在application
func 中添加,因此结果将如下所示:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
UIApplication.shared.isIdleTimerDisabled = true
return true
}