¿Cómo se maneja el cambio de orientación en la cola de mensajes?

¿Es una operación atómica?

Quiero decir es posible que cualquier otra cosa se ejecuta en el hilo principal durante un cambio de orientación?

Por ejemplo, digamos que el flujo en el hilo principal es algo como esto:

SomeOperation -> orientationChangeStart -> someOtherOperation -> orientationChangeEnd

es posible?

¿Puede someOtherOperation ejecutarse en el subproceso de interfaz de usuario mientras se está realizando un cambio de orientación?

Gracias por adelantado.

2 Solutions collect form web for “¿Cómo se maneja el cambio de orientación en la cola de mensajes?”

Sí, es una operación atómica.

En pseudo se ve como:

 void setNewOrientation(int state) { currentState = state; runOrientationChangedEvent(); } 

Y, a continuación, normalmente la Activity se vuelve a crear. Sólo la recreación de Actividad se agrega a la cola de mensajes, por lo que es posible ver si cambiar la orientación del dispositivo lo suficientemente rápido.

No se puede obtener el inicio y el final de este proceso, ya que sólo cambia unas pocas variables int que pueden indicarle la orientación actual como orientación :

 getActivity().getResources().getConfiguration().orientation 

O rotación

 getWindowManager().getDefaultDisplay().getRotation(); 

Así que usted puede obtener el evento sólo después de la orientación se cambia.

Probablemente no podrá medir el tiempo entre orientationChangeStart y orientationChangeEnd, pero puede ejecutar su someOtherOperation en el evento onConfigurationChanged . Ejemplo: Cómo usar onConfigurationChanged () y newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE en android 2.3.3

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.