Question

Je veux faire une activité qui permet de changer d'orientation sur certaines conditions, mais pas autrement. Plus exactement je veux éviter le redémarrage de l'activité lorsqu'un thread d'arrière-plan est occupé.

J'ai mis l'attribut configChanges sur le manifeste d'activité, et onConfigurationChanged est appelée lorsque les changements d'orientation. Cependant, je veux permettre à l'application de modifier l'orientation quand on les laisse .

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

    if (orientationChangeAllowed) {
        // how do I restart this activity?
    } else {
        // don't do anything
    }
}
Était-ce utile?

La solution

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

En tant que conseil: Vous pouvez utiliser onRetainNonConfigurationInstance() et getLastNonConfigurationInstance() et retour (un objet contenant) le AsyncThread. De cette façon, le Activity changera l'orientation lorsque l'utilisateur veut. Prenez note cependant:. Vous ne devriez pas fuyez une référence à un Context (peut-il être une référence à votre Activity ou Drawable, ...)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top