카운트 다운이 끝날 때까지 깨어 있어야하는 앱이 있지만 할당 된 수면 시간에 도달 할 때마다 ‘수면 모드’로 전환됩니다.
내 앱에는 수면을 연기하는 옵션이 있으므로 사용자가 비활성화 / 활성화 할 수 있습니다.
프로그래밍 방식으로 어떻게합니까?
답변
다음과 같이 유휴 타이머를 비활성화 할 수 있습니다.
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
및 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
}
답변
Swift 3 에서이 작업을 수행 할 수있는 정확한 위치 -func 내부 AppDelegate.swift
를 추가해야 결과가 다음과 같이 표시됩니다.UIApplication.shared.isIdleTimerDisabled = true
application
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
UIApplication.shared.isIdleTimerDisabled = true
return true
}