2010-01-23 3 views
0

Je rencontre un comportement étrange de mon application après avoir appuyé sur le bouton Home. Lorsque vous appuyez sur Accueil, tout est OK - mon application passe en arrière-plan et affiche l'écran d'accueil. Mais si vous essayez de choisir mon application dans le menu principal ou dans la liste des dernières tâches, elle se comporte comme si elle n'avait pas été démarrée auparavant et ne montre pas la dernière activité sur laquelle vous étiez - elle commence juste à zéro, à savoir, affiche l'écran de démarrage et commence les activités correspondantes suivantes. De plus, les vieilles activités de cette application restent sur la pile des activités, et l'instance précédente de l'application n'est pas terminée - donc si vous appuyez plusieurs fois sur Précédent, vous aurez simplement accès aux activités qui ont été lancées lors de la précédente session. avec mon application L'activité de l'écran de démarrage est filtrée par le filtre "android.intent.action.MAIN" et la catégorie "android.intent.category.LAUNCHER". La chose étrange est que tout cela se produit en dépit du fait que je n'intercepte aucune touche de retour, ou ne remplace aucune des méthodes onPause ou onResume. Ce qui se passe est en contradiction avec ma compréhension du cycle de vie de l'application Android - J'étais sûr que lorsque vous cliquez sur Accueil, une application passe en arrière-plan et lorsque vous la choisissez dans le menu plus tard, elle se déroule et ne redémarre pas. (Bien sûr, à moins que des choses de ce genre ne soient indiquées dans le manifeste de l'application ou que les méthodes correspondantes soient remplacées ou quelque chose d'autre). Je l'ai également vérifié pour d'autres événements du cycle de vie - tels que le changement d'orientation ou le basculement du clavier dur - et aucun de ceux qui ont conduit à des résultats aussi étranges. Il semble que le problème se produit lorsque vous essayez de démarrer l'application à partir du menu principal ou du menu des dernières applications. J'espère que vous serez en mesure de m'aider. Tout conseil sur ce à quoi faire attention ou où chercher une solution serait vraiment génial.Weird Home comportement du bouton

Cordialement, Alex

Répondre

0

Vous devez définir android:launchMode="singleTask" dans votre activité launcher dans votre fichier manifeste.

Pour plus d'informations sur l'attribut launchMode voir here

Notez que:

Le mode par défaut est "standard".

et:

Chaque fois il y a une nouvelle intention pour une activité « standard », une nouvelle instance de la classe est créée pour répondre à cette intention.

+0

Merci beaucoup pour votre réponse. Malheureusement, le lancement de launchMode n'a pas aidé. Cela influence si l'onCreate ou onResume de mon activité d'écran de démarrage est appelée en premier, lol :) Cependant, le vrai problème est que lorsque vous essayez d'ouvrir l'application après l'avoir minimisée, le système ne prend pas seulement la dernière activité depuis le haut de la pile. mais se réfère plutôt à l'activité LAUNCHER et tente de recréer, ou de le reprendre - peu importe. Je suis juste intrigué par un tel choix étrange d'activité à montrer à l'utilisateur sur la réouverture de l'application - par exemple. L'application de messagerie native vous renvoie toujours où vous étiez, pas au début. –

+0

Cela n'a pas beaucoup de sens en ce qui concerne votre activité de démarrage. Votre activité de démarrage est-elle celle configurée comme activité LAUNCHER dans votre manifeste? –

+0

Vous pouvez également regarder ici: http://stackoverflow.com/questions/2061143/android-keep-tasks-activity-stack-after-restart-from-home/2061447 –

Questions connexes