2010-03-19 19 views
5

Quiero realizar una actividad que permita cambios de orientación en algunas condiciones, pero no en otras. Más exactamente, quiero evitar el reinicio de la actividad cuando un hilo de fondo está ocupado.Reinicio condicional en la actividad onConfigurationChanged

He puesto el atributo configChanges en el manifiesto de actividad, y se invoca onConfigurationChanged cuando cambia la orientación. Sin embargo, quiero permitir que la aplicación cambie la orientación cuando se permite.

@Override 
public void onConfigurationChanged(Configuration newConfig) { 
    super.onConfigurationChanged(newConfig); 

    if (orientationChangeAllowed) { 
     // how do I restart this activity? 
    } else { 
     // don't do anything 
    } 
} 

Respuesta

7

si está permitido llamada setRequestedOrientation(), cuando no está permitido, no hacen nada.

Como consejo: Puede usar onRetainNonConfigurationInstance() y getLastNonConfigurationInstance() y devolver (un objeto que contiene) el AsyncThread. De esta manera, el Activity cambiará de orientación cuando el usuario lo desee. Sin embargo, tome nota: no debe filtrar una referencia a Context (puede ser una referencia a su Activity o Drawable, ...).

Cuestiones relacionadas