J'ai un Activity_1
Après de nombreuses étapes, disons
Activity_2
>Activity_3
.... dans certains Activity_n
Je modifie certaines données relatives à Activity_1
Et je l'appelle en utilisant
Intent intent = new Intent(Activity_n.this, Activity_1.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
Pour rafraîchir le contenu. Mais plus tard, je peux remonter jusqu'à Activity_1
Où j'ai commencé, qui contient d'anciennes données.
Au lieu de cela, je veux que la onResume()
initiale de Activity_1
Soit appelée, en utilisant le code ci-dessus. Ou approprié Flag
FLAG_ACTIVITY_CLEAR_TOP
considérons une tâche composée des activités: A, B, C, D. Si D appelle startActivity () avec une intention qui se résout en composante de l'activité B, alors C et D seront terminés et B recevra l'intention donnée, résultant en la pile étant maintenant: A, B.
C'est ce que disent les docs, mais pas ce que je reçois.
Vous pouvez ajouter ces deux lignes et essayer
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
Écrivez ceci dans votre fichier manifeste dans l'activité
<activity
Android:name=".SettingsActivity"
Android:launchMode="singleInstance"
Android:screenOrientation="portrait" >
</activity>
Les activités "singleTask" et "singleInstance" ne peuvent commencer qu'une tâche. Ils sont toujours à la racine de la pile d'activités. De plus, l'appareil ne peut contenir qu'une seule instance de l'activité à la fois - une seule de ces tâches.
Vous pouvez utiliser SingleTask ou SingleInstance
"singleTask" - Le système crée l'activité à la racine d'une nouvelle tâche et achemine l'intention vers celle-ci. Cependant, si une instance de l'activité existe déjà, le système achemine l'intention vers l'instance existante via un appel à sa méthode onNewIntent (), plutôt que d'en créer une nouvelle.
"singleInstance" - Identique à "singleTask", sauf que le système ne lance aucune autre activité dans la tâche contenant l'instance. L'activité est toujours le seul et unique membre de sa tâche.
Reportez-vous à ce lien http://developer.Android.com/guide/topics/manifest/activity-element.html
intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
Visitez: http://developer.Android.com/reference/Android/content/Intent.html#FLAG_ACTIVITY_REORDER_TO_FRONT
Reprendre Activity
à partir de backstack s'il existe ou en créer un nouveau sinon
Android:launchMode="singleTask"
ajoutez cette ligne au fichier AndroidManifest.xml de votre application et démarrez l'activité avec un Intent
normal.