Je dois appliquer différentes dispositions pour les orientations portrait et paysage de mon activité. En outre, je dois montrer l'alerte si l'orientation est portrait.Activité de manipulation tournant dans Android
J'ai spécifié android:configChanges="orientation|keyboardHidden"
dans AndroidManifest. Je surchargeons aussi la méthode onConfigurationChanged comme ceci:
@Override
public void onConfigurationChanged(Configuration newConfig)
{
Log.d("tag", "config changed");
super.onConfigurationChanged(newConfig);
int orientation = newConfig.orientation;
if (orientation == Configuration.ORIENTATION_PORTRAIT)
Log.d("tag", "Portrait");
else if (orientation == Configuration.ORIENTATION_LANDSCAPE)
Log.d("tag", "Landscape");
else
Log.w("tag", "other: " + orientation);
....
}
Pendant la rotation du paysage au journal portrait ressemble:
config changed
Portrait
Mais tout en changeant du mode portrait au paysage, il ressemble à
config changed
Portrait
config changed
Landscape
Pourquoi onConfigurationChanged est appelé deux fois? Comment puis-je l'éviter?
Pourquoi onConfigurationChanged() est mauvaise voie? Pourriez-vous me donner un lien avec des explications? Si je vais utiliser onCreate() ou quelque chose comme que l'activité sera recréée et ses données seront perdues. – darja