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 :

Quitter l'application et y retourner


Sujet :

Android

  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    757
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 757
    Points : 968
    Points
    968
    Par défaut Quitter l'application et y retourner
    Bonjour,


    Voici la situation :

    Lorsque mon application démarre, elle lance l'activity SplashScreen.
    Au bout de quelques secondes, SplashScreen lance l'activity Main, puis exécute finish() (pour terminer l'activity SplashScreen)

    Lorsque j'appuie sur le bouton back, l'application est mis en pause, et redonne la main au launcher.
    Cependant, lorsque je ré-ouvre l'application, celle-ci démarre avec SplashScreen et non Main.
    Qu'ai-je loupé ?
    L'application n'est pas détruite car elle est toujours visible avec un task killer...

    J'ai déjà essayer d'ajouter l'attribut android:noHistory="true" à l'activity, d'utiliser les Flags FLAG_ACTIVITY_CLEAR_TASK ou encore FLAG_ACTIVITY_NEW_TASK mais je n'y parviens pas.


    Merci de votre aide

  2. #2
    Expert éminent

    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 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    Non l'application n'est pas détruite...

    Mais le launcher lance un Intent qui demande une activité spécifique de l'application (le splash screen si j'ai bien compris), et si celle ci n'est pas dans la pile elle sera créée...
    Comme il y a de fortes chances pour que la pile soit vide au dernier back....
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    757
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 757
    Points : 968
    Points
    968
    Par défaut
    Alors quelle est la manière de faire cela ?
    Ne pas faire de finish() dans le SplashScreen ?
    Un flag que je n'aurais pas vu ?

  4. #4
    Expert éminent

    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 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    Hmmm.. j'avoue ne m’être jamais posé la question....

    Je pense qu'il est possible (avec un static boolean dans le splashscreen) de savoir si celui-ci a déjà été affiché
    si c'est le cas, lancer l'activité suivante et faire le finish directement
    sinon, mettre le boolean à vrai, et faire la même chose... plus tard....

    un truc genre:
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    class SplashActivity extends Activity
    {
        static private boolean shown = false;
        private Handler hdl;
     
        public void onCreate(...)
        {
            if (this.shown) {
                onStartApp();
                return;
            }
     
            setContentView(...);
            this.hdl = new Handler();
            // pas sur du nom de la fonction
            hdl.executeDelayed(new Runnable() {
               @Override
               public void run() { onStartApp(); }
            }, 5000);
        }
     
        public void onStartApp()
        {
            shown  = true;
            startActivity(...);
            finish();
        }
    }
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

Discussions similaires

  1. [C#] Quitter une application en mode console
    Par Ditch dans le forum Windows Forms
    Réponses: 2
    Dernier message: 04/04/2005, 21h37
  2. Quitter mon application
    Par nenette dans le forum Access
    Réponses: 6
    Dernier message: 13/10/2004, 09h48
  3. Quitter une application
    Par fgrandjean dans le forum C++Builder
    Réponses: 2
    Dernier message: 04/08/2004, 13h39
  4. Quitter une application FLASH ?
    Par jeje.r dans le forum Flash
    Réponses: 3
    Dernier message: 25/02/2003, 14h57
  5. Impossible de quitter mon application!
    Par Bouillou dans le forum C++Builder
    Réponses: 4
    Dernier message: 12/11/2002, 20h43

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