IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

onStop() : savoir si l'utilisateur a utilisé home


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 53
    Par défaut onStop() : savoir si l'utilisateur a utilisé home
    J'ai une application qui utilise le GPS. J'aimerai qu'elle le libère quand l'utilisateur appui sur "home" mais pas quand je lance une autre activité de mon application.

    Dans la méthode onStop(), j'ai pas trouvé de solution pour différencier ces 2 cas ?

    Que se passe il si l'utilisateur fait "home" pendant qu'il est dans une autre activity ? onStop() ne sera pas appelé une 2ème fois je crois ?

  2. #2
    Expert confirmé

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Par défaut
    Salut,

    Il ne passe qu'une fois dans le onPause et onStop

    Après pour différencier les deux cas je crois que c'est IsFinishing()

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    @Override
    	protected void onStop() {
    		super.onStop();
    		if (isFinishing()){
                           // l'activity va se détruire
                    } else {
                           // l'activity est en suspens 
                    }  
    	}
    Tu peux aussi le faire dans le onPause

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 53
    Par défaut
    Citation Envoyé par Feanorin Voir le message
    Salut,

    Il ne passe qu'une fois dans le onPause et onStop

    Après pour différencier les deux cas je crois que c'est IsFinishing()

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    @Override
    	protected void onStop() {
    		super.onStop();
    		if (isFinishing()){
                           // l'activity va se détruire
                    } else {
                           // l'activity est en suspens 
                    }  
    	}
    Tu peux aussi le faire dans le onPause
    Sauf erreur de ma part, si tu fais "home" ou si une autre activity vient devant, l'activity ne se termine pas (isFinishing() va renvoyer false). Du coup ça ne permet pas de différencier les 2 cas :/

  4. #4
    Expert confirmé

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Par défaut
    L'activity ne se termine pas ,
    après tu peux intercepter la touche home et gérer l'événement comme tu veux.
    Je t'ai mis un lien sur le cycle de vie des activités.


    Pour intercepter KEY_HOME il faut juste implémenter la procédure onKeyDown et regarder si la touche correspond a KEYCODE_HOME.

    http://developer.android.com/referen.../Activity.html

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 53
    Par défaut
    Citation Envoyé par Feanorin Voir le message
    L'activity ne se termine pas ,
    après tu peux intercepter la touche home et gérer l'événement comme tu veux.
    Je t'ai mis un lien sur le cycle de vie des activités.


    Pour intercepter KEY_HOME il faut juste implémenter la procédure onKeyDown et regarder si la touche correspond a KEYCODE_HOME.

    http://developer.android.com/referen.../Activity.html
    Justement la keycode_home est la seule que l'on ne peu intercepter, d'ou ma question. Sinon je connais par cœur le schéma, et justement dans les 2 cas l'activity n'est plus visible (donc onStop())...

  6. #6
    Expert confirmé

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Par défaut
    Citation Envoyé par theanthony33 Voir le message
    Justement la keycode_home est la seule que l'on ne peu intercepter, d'ou ma question. Sinon je connais par cœur le schéma, et justement dans les 2 cas l'activity n'est plus visible (donc onStop())...
    Je ne savais pas,

    D'après la doc tu as onUserLeaveHint (), mais je ne connais pas son comportement .

    J'ai trouvé aussi une discussion sur googlegroups
    http://groups.google.com/group/andro...9f3da8ba13d8fa

    protected void onUserLeaveHint ()
    Since: API Level 3

    Called as part of the activity lifecycle when an activity is about to go into the background as the result of user choice. For example, when the user presses the Home key, onUserLeaveHint() will be called, but when an incoming phone call causes the in-call Activity to be automatically brought to the foreground, onUserLeaveHint() will not be called on the activity being interrupted. In cases when it is invoked, this method is called right before the activity's onPause() callback.

    This callback and onUserInteraction() are intended to help activities manage status bar notifications intelligently; specifically, for helping activities determine the proper time to cancel a notfication.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 9
    Dernier message: 20/12/2005, 10h19
  2. Savoir si l'utilisateur à bien imprimer
    Par pendragon509 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 16/12/2005, 13h36
  3. Réponses: 4
    Dernier message: 14/10/2005, 19h53
  4. Savoir si l'utilisateur est administrateur
    Par Don ViP dans le forum Windows
    Réponses: 2
    Dernier message: 26/04/2004, 13h20
  5. [FORM] -> Savoir quand l'utilisateur la réduit ?
    Par MaTHieU_ dans le forum C++Builder
    Réponses: 2
    Dernier message: 08/07/2003, 00h10

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