+ Répondre à la discussion Actualité déjà publiée
  1. #1
    Responsable Android

    Avatar de Feanorin
    Profil pro
    Inscrit en
    avril 2004
    Messages
    4 590
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : avril 2004
    Messages : 4 590
    Points : 8 872
    Points
    8 872

    Par défaut Cycle de vie de l'activité

    Bonjour,

    Je vous présente ce tutoriel intitulé :

    Cycle de vie de l'activité



    Cet article présente tout ce qu'il faut savoir sur les cycles de vie des activités
    N'hésitez pas à commentez cet article !
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

  2. #2
    Modérateur

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : février 2007
    Messages : 4 253
    Points : 7 607
    Points
    7 607
    Billets dans le blog
    3

    Par défaut

    J'ai aussi un problème sur cet article (et le texte associé):

    Il n'y a pas d'état "Morte" au sens propre. Si l'activité est "morte" elle n'est plus référencée dans la mémoire, et est donc détruite (mais c'est un point de détail).

    La méthode onCreate est appelée :
    • au premier lancement de l'activité ;
    • si l'activité est ressuscitée, le bundle passé en paramètre sera celui sauvegardé par onSaveInstanceState() ;
    • si l'état du terminal change et que l'activité est associée à cet état (passage du mode portrait au mode paysage).
    En fait, onCreate est toujours appelée au premier lancement de l'activité. Ce lancement peut-être dû à plusieurs raisons (par le système avec un Intent, ressuscitée d'une activitée détruite par celui-ci, création d'une nouvelle activité suite au passage en mode paysage, etc...). Toujours est-il que c'est *toujours* sur une nouvelle activité (nouvelle instance de la classe).

    Les méthodes onStart, onRestart et onStop n'ont pas grand intérêt.
    Au contraire, elles informent l'activité qu'elle est *visible*. C'est donc le moment pour démarrer les animations, pour un suivi de navigation de démarrer la mise à jour de la carte par exemple, ou la géolocalisation....
    A noter que onRestart est appelée en addition de onStart.

    Les méthodes onPause et onResume sont celles dans lesquelles l'activité doit sauvegarder ses états et les restituer.
    Pas toujours, onPause/onResume informent juste que l'activité est à l'avant-plan (et donc ne sera probablement jamais détruite par le système directement sauf problème de système majeur).
    Je ne vois pas pourquoi l'état devrait être sauvé / restitué.

    Exemple type. Activité A: une "form", Activity B: un "dialogue" de selection de couleur (donc qui ne prend pas tous l'écran).
    A.onPause() sera appelé avant que B ne soit affiché. Mais on voit toujours A derrière.
    Au retour de B, on aura A.onResume() qui sera appelé, mais aucune raison à priori de restituer un état.
    Au contraire, il faudrait sauvegarder le résultat de l'appel à B.


    Mais bon, ce n'est que mon avis personnel !
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

Discussions similaires

  1. Model de cycle de vie d'un logiciel
    Par apt dans le forum Méthodes
    Réponses: 4
    Dernier message: 29/10/2014, 23h54
  2. Réponses: 3
    Dernier message: 01/06/2011, 11h04
  3. [EJB Stateful] [Cycle de vie] methode remove()
    Par anitshka dans le forum Java EE
    Réponses: 3
    Dernier message: 05/12/2006, 17h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo