5

Je souhaite créer une activité permettant des changements d'orientation sur certaines conditions, mais pas autrement. Plus exactement, je veux empêcher le redémarrage de l'activité lorsqu'un thread d'arrière-plan est occupé.Redémarrage conditionnel sur Activity onConfigurationChanged

J'ai mis l'attribut configChanges sur le manifeste d'activité et onConfigurationChanged est appelée lorsque l'orientation change. Cependant, je veux permettre à l'application de changer l'orientation lorsqu'il est autorisé.

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

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

Répondre

7

s'il est permis appel setRequestedOrientation(), quand il est pas permis, ne rien faire.

En guise de conseil: Vous pouvez utiliser onRetainNonConfigurationInstance() et getLastNonConfigurationInstance() et retourner (un objet contenant) AsyncThread. De cette façon, le Activity changera d'orientation lorsque l'utilisateur le souhaite. Prenez note cependant: Vous ne devriez pas divulguer une référence à un Context (qu'il s'agisse d'une référence à votre Activity ou Drawable, ...).