10 votes

Android : Comment faire pour que le lanceur ouvre toujours l'activité principale au lieu de l'activité enfant ? (ou autre)

J'ai des activités A et B. L'activité A est celle qui a un filtre d'intention LAUNCHER (c'est-à-dire l'activité qui est lancée lorsque nous cliquons sur l'icône de l'application sur l'écran d'accueil).

A lance B en utilisant startActivity(new Intent(A.this, B.class)) .

Lorsque l'utilisateur a ouvert l'activité B, qu'il met mon application en arrière-plan et que le processus de mon application est ensuite tué, lorsque l'utilisateur redémarre mon application, B est ouvert au lieu de A.

Cela a provoqué une fermeture forcée de mon application, car A est l'activité qui initialise les ressources dont mon application a besoin, et lorsque B a essayé d'accéder aux ressources non initialisées, B s'est arrêté.

Avez-vous des suggestions sur ce que je devrais faire dans cette situation ?

10voto

Jason Hanley Points 2260

En fait, il faudrait que l'activité B initialise également vos ressources. Mais vous pouvez mettre android:clearTaskOnLaunch="true" dans votre manifeste pour l'activité A afin que le lanceur aille toujours vers cette activité.

0voto

Vamsi Points 563

Avez-vous essayé de définir le drapeau FLAG_ACTIVITY_NEW_TASK lors de la création de l'intention. Dans votre cas, essayez startActivity(new Intent(A.this, B.class).setFlags(Intent.FLAG_ACTIVITY_NEW_TASK))

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X