Aller au contenu

[Résolu] Restauration d'une sub-activity


NGTerenas

Recommended Posts

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é par NGTerenas
Lien vers le commentaire
Partager sur d’autres sites

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.

Lien vers le commentaire
Partager sur d’autres sites

Rejoignez la conversation

Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.

Invité
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...