Mi aplicación para iPhone tiene dos estados: interfaz de usuario y juego. juego se juega con dispositivo de inclinación solamente así que cambié de auto-apagado en el sueño inicio del juego:iOS idleTimerComportamiento desactivado
[[UIApplication sharedApplication].idleTimerDisabled = TRUE;
Pero tan pronto como vuelva a la interfaz de usuario, quiero auto-sleep 'que se activa de nuevo. Por lo tanto en el acabado del juego le devolveré:
[[UIApplication sharedApplication].idleTimerDisabled = FALSE;
Después de un juego juego de largo, que dio como resultado el oscurecimiento inmediato de la primera pantalla de interfaz de usuario que vaya después del partido. Parece que cuando el temporizador inactivo estaba desactivado todavía estaba calculando el tiempo. Y se disparó inmediatamente después de "habilitar". ¿Como puedo solucionar este problema?
La segunda opción es exactamente la que ya uso. Me pregunto si existe una forma menos "hacky" de enmendar este problema. – Nick
Adivinar el valor de tiempo de espera inactivo del sistema no es tan bueno, pero aparte de eso, es un "truco" bastante agradable. Podría intentar un evento táctil programático, pero incluso si funciona, no será menos "hacky". – Gil
@Gil Quizás no entiendo este derecho. ¿Cómo se retrasaría arbitrariamente la configuración de idleTimerDisabled = NO call help con la "condición de carrera" que está viendo el OP? Por ejemplo, ¿qué ocurre si el temporizador iOS se estableció en 30 segundos y actualmente está en el seg 25, entonces la aplicación fuerza un retraso de 5 segundos una vez que está de vuelta. ¿No sería eso el mismo problema, ya que no conoce el estado del temporizador inactivo interno de iOS? – stonedauwg