Afin de conserver l'état dans mon application Android, de sorte que l'utilisateur retourne à l'activité qu'ils avaient laissé à, je l'ai mis le alwaysRetainTaskState drapeau très utile dans mon manifeste:état persistant Android avec des variables globales lorsque le système tue les activités
<activity android:name=".Main"
android:label="@string/app_name"
android:alwaysRetainTaskState="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
Cela fait le travail, ou alors je pensais; J'ai découvert que le système peut encore détruire les activités de mon application pour préserver la mémoire, tout en conservant son état. Pour vérifier cela, j'ai écrit une petite application de test qui crée tout un tas d'activités en boucle pour voir si les activités de mon application seraient détruites. Effectivement, le système détruit mes activités.
Avec un peu de lecture, je trouve que je dois utiliser pour aider à maintenir l'état d'activité onSaveInstanceState() et onRestoreInstanceState().
Pour arriver à ma question, disons que j'ai une activité avec un certain nombre de variables globales, certains d'entre eux sont statiques et certains ne sont pas. Ils sont constitués de booléens, d'arraylistes, de chaînes de caractères, etc. Mon problème est que je suis confus quant à la nature de ces variables persistantes lorsqu'une activité est détruite. Lesquels dois-je empaqueter dans le paquet dans onSaveInstanceState()? Le système fait-il quelque chose à ces variables lorsqu'une activité est détruite?
ouais je n'étais pas clair sur ce que je voulais emballer dans le paquet. ce que je voulais dire est: les variables statiques doivent-elles être sauvegardées? faire le non-statique? D'après ce que vous dites, les membres statiques n'auront pas besoin d'être sauvegardés lorsque saveInstanceState() est appelée. les variables non statiques persistent-elles lorsqu'une activité est détruite? – jlim
Désolé de ressusciter --- J'essaie également de déterminer quelle est la meilleure façon de s'assurer que certaines actions de l'utilisateur prises dans mon application qui ajoutent des vues dynamiques à la vue principale (appWidgets réels) seront souvenus, peu importe quoi. Je ne sais pas si c'est aussi simple qu'un état d'instance enregistré ou si j'ai besoin d'un autre type de magie qui retient leurs choix et les reconstruit d'une manière ou d'une autre – mylock