NGTerenas Posté(e) 12 décembre 2009 Share Posté(e) 12 décembre 2009 (modifié) Bonjour tout le monde, Je ne comprends pas trop comment fonctionne la restauration d'une application lorsqu'elle est composée d'une stack de N activities... Je m'explique : Supposons une application de 3 activities A (déclaré SingleTask), B et C. On implémente le onCreate() pour toutes, et éventuellement les onStart() / onStop() / onResume() / onPause(), cf le très bon tutorial à cette adresse : http://www.e-vidence.net/?p=298 Bon. Je lance alors mon application qui start l'activity A. Cette dernière start la B et enfin B lance C. J'ai alors une belle pile ABC avec A et B sur pause et C running. A partir de la, 3 scénarios "perturbateurs" possible : 1°) L'utilisateur reçoit un coup de fil : C se met en pause, le coup de fil se passe et se termine, C se resume et appelle les events de restauration d'état qui vont bien => OK 2°) L'utilisateur appuie sur Home, fait sa vie, appuie sur Home longtemps et clic sur l'application, C se resume et appelle les events de restauration d'état qui vont bien => OK 3°) L'utilisateur appuie sur Home, fait sa vie, puis clic sur l'application depuis la liste des applications, A se lance => KO Pourquoi dans le scénario 3, c'est "A" qui s'est relancé ? Ne devait-il pas dépiler la task, d'autant que "A" est déclaré SingleTask. Remarque, que A soit SingleTask ou non, c'est toujours le même problème. Dans le scénario 3, on retourne toujours sur A. Comment faire pour que le scénario 3 soit équivalent au scénario 2 ? S'il faut gérer dans A le startActivity() + Intent Extras pour restaurer les activities et leur état dans le cas du scénario 3... aheum. Résolu : J'avais juste fait de la m**** :-X Et j'ai retiré SingleTask (pour le moment). Modifié 12 décembre 2009 par NGTerenas Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
neoakira Posté(e) 12 décembre 2009 Share Posté(e) 12 décembre 2009 par default dans le scenario 3 c'est C qui serait lancé... t'est sur que ca reveint au meme sans SingleTask ? sinon la reponse est dans cette page http://developer.android.com/intl/fr/guide/topics/manifest/activity-element.html et celle la http://developer.android.com/intl/fr/guide/topics/fundamentals.html#acttask Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
NGTerenas Posté(e) 12 décembre 2009 Auteur Share Posté(e) 12 décembre 2009 Je venais de me lire justement ces 2 pavés... c'est pour ça que je suis venu poster ici :) Par contre je viens de refaire des tests sans SingleTask et en fait, je crois (enfin je suis sûr) que j'avais fait de la m**** somewhere... puisqu'après plusieurs essais ça marche. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
dekans Posté(e) 12 décembre 2009 Share Posté(e) 12 décembre 2009 B et C étaient déclarées en singleTop ? Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
NGTerenas Posté(e) 12 décembre 2009 Auteur Share Posté(e) 12 décembre 2009 euh yep ! Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Rejoignez la conversation
Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.