2012-09-30 15 views

Respuesta

314

Puede desactivar el temporizador de inactividad de la siguiente manera;

En Objective-C:

[UIApplication sharedApplication].idleTimerDisabled = YES; 

En Swift:

UIApplication.sharedApplication().idleTimerDisabled = true 

En Swift 3.0 & Swift 4.0:

UIApplication.shared.isIdleTimerDisabled = true 

Conjunto de nuevo a NO o false para volver habilitar el modo de suspensión.

Por ejemplo, si la necesita hasta que salga de la vista que pueda devolverlo reemplazando el viewWillDisappear:

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

Más sobre UIApplication Class.

+1

¿Esto funciona para el reloj de manzana? – Gati

+0

@Gati Lo dudo, pero no puedo confirmarlo ya que no tengo un reloj – jrturton

+1

@jrturton Hmm .. No funciona en Apple Watch. Si tienes alguna solución para esto, házmelo saber. – Gati

14

En Swift 3, para desactivar el temporizador de inactividad que es ahora:

UIApplication.shared.isIdleTimerDisabled = true 

Para activar el temporizador de inactividad de nuevo es simplemente:

UIApplication.shared.isIdleTimerDisabled = false 

Además, tenga en cuenta que YES y NO son no disponible en Swift y que debe usar true o false (a diferencia de la respuesta anterior).

-3

en Swift 3 lugar exacto donde esto se puede hacer es AppDelegate.swift - se debe añadir UIApplication.shared.isIdleTimerDisabled = true dentro application func por lo resultado se verá así:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { 
    UIApplication.shared.isIdleTimerDisabled = true 
    return true 
} 
+0

Esto no depende de AppDelegate. De hecho, consideraría una mala práctica mantener el dispositivo en funcionamiento sin ningún motivo real. La pregunta era sobre mantener el dispositivo en funcionamiento durante una funcionalidad específica (hasta el final de una cuenta regresiva). Por lo tanto, se debe considerar deshabilitar el temporizador inactivo cuando la cuenta regresiva comienza a finalizar de nuevo habilitándolo nuevamente. – Cyrus

+0

@Cyrus No soy un programador rápido. Actualmente estoy haciendo la aplicación webview y probé muchas soluciones sin instrucciones exactas y eso no funcionó para mí, pero ESTO FUNCIONA.entonces publico esto para compartirlo con otros que buscarán una solución similar. la razón para usar esto - mi aplicación es la ayudante de guitarra que necesita estar siempre despierta durante la reproducción – godblessstrawberry

Cuestiones relacionadas