En mi proyecto, necesito ver el cambio de foco de la ventana. Cerré los resultados de todas las etapas de una actividad. Cuando la pantalla está encendida, el resultado es el siguiente:¿Cuándo cambia el * Window focus * en Android?
02-17 13:50:03.898: DEBUG/InquiryInterface(3829): onCreate screen state : false
02-17 13:50:03.898: DEBUG/InquiryInterface(3829): onStart screen state : false
02-17 13:50:03.898: DEBUG/InquiryInterface(3829): onResume screen state : false
02-17 13:50:08.998: DEBUG/InquiryInterface(3829): onPause screen state : true
02-17 13:50:09.178: DEBUG/InquiryInterface(3829): onWindowFocusChanged : false
02-17 13:50:09.228: DEBUG/InquiryInterface(3829): onStop screen state : false
02-17 13:50:09.228: DEBUG/InquiryInterface(3829): onDestroy screen state : false
onWindowFocusChanged es el método proporcionado por la actividad de clase. Y el valor que se muestra en la lista es el valor de entrada (boolean hasFocus) del método onWindowFocusChanged.
He utilizado el siguiente código para obtener el estado de enfoque de la ventana para cada estado del método, onCreate, onStart, etc.
@Override
public void onResume() {
super.onResume();
Log.d(TAG, "onCreate screen state : "
+String.valueOf(this.hasWindowFocus()));
}
Pero en el documention Android, leo: el método onResume () es Se invoca cuando la actividad comenzará a interactuar con el usuario. En este punto, tu actividad está en la parte superior de la pila de actividades, con la entrada del usuario.
De esta manera, debería ser "Verdadero" para el foco de la ventana en onResume, pero no en onPause(). Alguien tiene una idea de por qué sucede esto?
Acabo de revisar todo ciclo de vida de la actividad con más registros, y tengo la misma conclusión que la tuya. Gracias, he aceptado tu respuesta. No lo sabía antes :) – Mathieu
De [los documentos] (http://developer.android.com/reference/android/app/Activity.html#onWindowFocusChanged%28boolean%29): _ "Tenga en cuenta que esto proporciona información acerca de estado de enfoque global, que se gestiona independientemente de ciclos de vida de actividad. Como tal, aunque los cambios de foco generalmente tendrán alguna relación con los cambios del ciclo de vida (una actividad que se detiene generalmente no tendrá foco en la ventana), no debe confiar en ningún orden particular entre las devoluciones de llamada aquí y las de los otros métodos del ciclo de vida como onResume(). "_ –