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 :

Empêcher la fermeture d'une application


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 122
    Par défaut Empêcher la fermeture d'une application
    Bonjour à toutes et à tous,

    Pour fermer une application, j'appuie sur le bouton "retour" de mon smartphone.

    J'aimerais, lorsqu’on appuie sur ce bouton, qu'on propose à l'utilisateur, via un alertDialog de continuer ou stopper l'application ; dans le genre : "Voulez-vous réellement quitter l'application : OUI, NON".

    Où placer cet alertDialog ? dans le onStop() ?

    et dans le cas où l'utilisateur veut poursuivre l'application, quel code va éviter sa fermeture ?

    Merci de votre aide.

    Pierre

  2. #2
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 281
    Par défaut
    Il faut créer un évenement lors du clic sur le bouton
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
     
    Override
    public boolean onKeyDown(int keyCode, KeyEvent event)  {
          if (keyCode == KeyEvent.KEYCODE_BACK) {
     
     
    // Creation de l'AlertDialog
     
    //=> Si Quitter finish(); + return true;
    //=> Sinon return false;
     
     
          }
     
       return super.onKeyDown(keyCode, event);
    }

  3. #3
    Modérateur
    Avatar de Hizin
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Février 2010
    Messages
    2 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Février 2010
    Messages : 2 180
    Par défaut
    À savoir que ce genre de procédé est mal vu par un bon nombre d'utilisateurs, cassant la logique de navigation standard permettant de revenir en arrière et de quitter via le bouton "back".
    Il y a aussi le cas du bouton "home", qui rend ce genre de comportement incohérent (l'utilisateur doit passer par une confirmation via le bouton retour, mais pas via le home).
    C'est Android, PAS Androïd, ou Androïde didiou !
    Le premier est un OS, le second est la mauvaise orthographe du troisième, un mot français désignant un robot à forme humaine.

    Membre du comité contre la phrase "ça marche PAS" en titre et/ou explication de problème.

    N'oubliez pas de consulter les FAQ Android et les cours et tutoriels Android

  4. #4
    Expert confirmé

    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
    Billets dans le blog
    3
    Par défaut
    Alors en fait, c'est une très mauvaise idée... d'ailleurs contraire à l'esprit Android.

    Non, l'appui sur le bouton back ne ferme pas une application, cela ne fait que revenir à l'activité précédente.
    Il se peut que cette activité soit le launcher, mais peu importe... Back ne ferme pas une application.
    D'ailleurs Home non plus (il ne fait que faire passer le launcher à l'avant plan).

    Ceci est d'autant plus vrai pour les "petites" applications en Java. Il n'y a aucun intérêt à "quitter" une application. Tout est fait dans le système pour que l'utilisateur ne "voie" les applications que comme des activités additionnelles et je trouve dommage de proposer un joli "exit" (dans un menu) qui va alourdir l'expérience utilisateur, et ralentir le re-lancement de l'application (ben oui menu "last application", clic sur la dernière activité par exemple, ce devrait être instantané...).

    Le système s'occupe de tout: envoyer les onPause/onStop/onDestroy aux activités pour rendre les ressources que celles-ci utilisent au système....
    Et même l'objet "Application" reçoit les évenement de fermeture / ouverture.

    http://android.nextapp.com/site/fx/doc/exit

    Au fait, même windows (avec windows 8) commence à ne plus proposer d'option pour "quitter" ... fini la croix rouge !

  5. #5
    Membre émérite
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 122
    Par défaut
    Je vous remercie pour vos propositions et mises en garde vis à vis du principe même d' Androïd.

    Pourquoi je souhaite faire cela : tout bonnement parce que mon bouton "retour" est d'une sensibilité et susceptibilité extrême et cela me gêne énormément dans mon application de navigation où je "casse" le relevé d'un tracé en cours si par mégarde mon doigt passe sur ce bouton.

    Cordialement.

    Pierre

  6. #6
    Expert confirmé

    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
    Billets dans le blog
    3
    Par défaut
    Ha ben ça veut dire qu'il y a un soucis de conception... Si une application doit faire des choses pendant un certain temps, elle ne doit pas se baser sur l'activité. Celle-ci peut être détruite dans plein de cas: reception d'un appel, passage en veille, etc....


    Je m'explique.... L'application devrait avoir 2 parties:
    * Une activité, qui permet de voir un tracé en cours (si il y en a un), et deux boutons:
    - Arrêter: coupe le tracé en cours (et arrête le service d'enregistrement)
    - Démarrer: affiche le tracé en cours (et démarre le service d'enregistrement).
    * Un service (d'avant-plan en général), qui, si actif, affiche une notification android. Cette notification permet de lancer l'activité. Pendant qu'il tourne le service enregistre ce qui doit être enregistré.

    Voilà....
    Pas besoin de bouton "quit".

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

Discussions similaires

  1. Fermeture d'une application éxterne
    Par Matt2094 dans le forum Langage
    Réponses: 8
    Dernier message: 22/03/2006, 15h11
  2. Forcer la fermeture d'une application
    Par Bissada dans le forum Langage
    Réponses: 2
    Dernier message: 06/10/2005, 21h42
  3. fermeture d'une application après un temp d'inactivité?
    Par sitdown dans le forum Autres Logiciels
    Réponses: 1
    Dernier message: 24/08/2005, 15h44
  4. Détection de la fermeture d'une application
    Par vanitom dans le forum MFC
    Réponses: 6
    Dernier message: 19/08/2005, 18h11
  5. [Event]Annuler la fermeture d'une application
    Par willowII dans le forum Interfaces Graphiques en Java
    Réponses: 3
    Dernier message: 16/11/2004, 09h28

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