2010-12-15 16 views
5

He estado jugando con los estados todo el día tratando de descubrir por qué, cuando presiono el botón de encendido para abrir la pantalla de bloqueo, mi aplicación pierde foco y llama a OnStop() (como debería) pero luego vuelve a llamar a onStart() antes de que la pantalla se apague. Esto me está causando un problema porque algunos sonidos en mi aplicación (y presumiblemente en otras cosas) comienzan a reproducirse nuevamente mientras la pantalla de bloqueo está activa.Android, la aplicación se reinició después de que se inicie la pantalla de bloqueo

¿cómo puedo asegurarme de que está correctamente conectado a tierra y parado cuando la pantalla de bloqueo está activa?

Respuesta

7

Me enfrenté a este problema exacto no hace mucho tiempo. En AndroidManifest.xml, asegúrese de que tiene esto:

androide: configChanges = "keyboardHidden | orientación"

Esto evitará que su actividad pueda reiniciarse en tiempo de ejecución 'cambios de configuración'. See handling the configuration change yourself. De esta forma, su aplicación escuchará los eventos que podrían provocar un reinicio, como la orientación y los cambios de visibilidad del teclado, y los manejará dentro de su Actividad.

También hay una pregunta muy similar en SO aquí: Activity restart on rotation Android

+1

Eres un salvavidas gracias! Vi esta opción esta mañana cuando estaba mirando mi ventana con problemas para perder la orientación, y la ignoré. ¡Gracias de nuevo! – Hamid

+1

Citando de la documentación vinculada, "Esta técnica se debe considerar como último recurso y no se recomienda para la mayoría de las aplicaciones". – CommonsWare

+0

La naturaleza de mi aplicación significa que siempre _ debe estar en el paisaje, independientemente de cualquier otro factor y sin excepción. Como tal, creo que es una solución aceptable, y en realidad me ayuda a resolver un problema secundario al bloquear mi aplicación en el entorno, incluso entre los interruptores de actividad. – Hamid

Cuestiones relacionadas