Android Gestion manuelle des modifications de configuration


Exemple

Si votre application n'a pas besoin de mettre à jour les ressources lors d'un changement de configuration spécifique et que vous avez une limitation de performance qui vous oblige à éviter le redémarrage de l'activité, vous pouvez déclarer que votre activité gère elle-même le changement de configuration. activité.

Cependant, cette technique doit être considérée comme un dernier recours lorsque vous devez éviter les redémarrages en raison d'un changement de configuration et que cela n'est pas recommandé pour la plupart des applications. Pour adopter cette approche, nous devons ajouter le nœud android:configChanges à l'activité dans le fichier AndroidManifest.xml :

<activity android:name=".MyActivity"
          android:configChanges="orientation|screenSize|keyboardHidden"
          android:label="@string/app_name">

Maintenant, lorsque l'une de ces configurations change, l'activité ne redémarre pas mais reçoit un appel à onConfigurationChanged() :

// Within the activity which receives these changes
// Checks the current device orientation, and toasts accordingly
@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);

    // Checks the orientation of the screen
    if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
        Toast.makeText(this, "landscape", Toast.LENGTH_SHORT).show();
    } else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){
        Toast.makeText(this, "portrait", Toast.LENGTH_SHORT).show();
    }
}

Voir la documentation sur la gestion du changement . Pour plus d'informations sur les modifications de configuration que vous pouvez gérer dans votre activité, consultez la documentation android: configChanges et la classe Configuration .