Question

Dans mon activité, j'ai une classe interne appelée A étend AsyncTask.Je ne veux pas que l'activité soit détruite et recrée à nouveau lorsque l'appareil est tourné.Je veux qu'il continue à fonctionner.J'ai lu ce lien RotationAsync .Ils utilisent une classe statique d'AsyncTask.J'ai déclaré de nombreuses variables dans mon activité, donc si j'utilise une classe statique, je ne peux pas utiliser de variables d'activité.Existe-t-il un autre moyen de faire comme le lien ci-dessus sans utiliser la classe statique de AsyncTask?Merci pour vos réponses.Désolé si mon anglais comporte des erreurs.

Était-ce utile?

La solution

Vous pouvez empêcher votre activité de redémarrer en utilisant ces paramètres sur le manifeste:

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

Après cela, vous pouvez gérer les modifications à l'aide de ce code

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

// Checks the orientation of the screen
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
    //do something here
} else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){
    //do something here
}

}

Pour plus d'informations, vous pouvez lire http://developer.android.com / guide / topics / resources / runtime-changes.html

Autres conseils

Pour conserver vos variables, vous pouvez les enregistrer dans un Bundle et recharger l'état de votre activité lorsqu'elle est recréée.Cela devrait vous aider à démarrer: http://developer.android.com/guide/topics/fundamentals/activities.html#SavingActivityState

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