2012-03-30 8 views
14

Al pulsar la tecla de encendido, la pantalla se apaga (completamente a oscuras), el sistema destruye mi actividad y luego recrea:Actividad del ciclo de vida X Botón de encendido X Bloqueo de pantalla

03-28 22:48:00.934: V/[BB](5809): [GameControl] onPause 
03-28 22:48:01.444: V/[BB](5809): [GameControl] onDestroy 
03-28 22:48:01.724: V/[BB](5809): [GameControl] onCreate 
03-28 22:48:03.016: V/[BB](5809): [GameControl] onResume 
03-28 22:48:03.016: V/[BB](5809): [GameControl] onPause 

Esto es causado debido a mi actividad tiene una orientación fija (horizontal) y la pantalla de bloqueo es vertical.

He probado esta teoría estableciendo una orientación vertical fija y el problema no ocurre. También comprobé los getResources)) Valores (getConfiguration. (:

{ scale=1.0 imsi=724/31 loc=pt_BR touch=3 keys=2/1/1 nav=1/1 orien=2 layout=17 uiMode=17 seq=36} 
{ scale=1.0 imsi=724/31 loc=pt_BR touch=3 keys=2/1/1 nav=1/1 orien=1 layout=17 uiMode=17 seq=37} 
{ scale=1.0 imsi=724/31 loc=pt_BR touch=3 keys=2/1/1 nav=1/1 orien=2 layout=17 uiMode=17 seq=38} 

¿Cómo se puede evitar eso? ¡No quiero que mi actividad sea destruida por la pantalla de bloqueo!

+0

No conozco la respuesta específica, pero siempre debe suponer que cuando su actividad ya no esté activa, el sistema podría matarla sin previo aviso. – Simon

+0

@thiagolr por favor dime exactamente qué pasó cuando presionas el botón de encendido? Tu pantalla es esa completamente oscura? ¿Puedes ver tu actividad entonces? – minhaz

+0

Sí, la pantalla se apagó (completamente oscura) y esos registros anteriores ocurrieron (mientras la pantalla está apagada). – thiagolr

Respuesta

10

La solución es añadir

android:configChanges="orientation|keyboardHidden|screenSize" 

en su elemento <activity> en su AndroidManifest.xml.

+2

Si se dirige al nivel de API 13 o superior, necesitará android: configChanges = "orientation | screenSize". Tenga en cuenta que si su minsdk es menor que 13, no reconocerá el "tamaño de pantalla", por lo tanto, la única opción es reducir su SDK objetivo al mismo valor que su min. Esto es molesto ya que obliga a su aplicación a tener una barra de menú de software en el borde de la pantalla. –

Cuestiones relacionadas