Android - L'activité continue de fonctionner pendant les rotations
-
28-10-2019 - |
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.
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