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 :

Plantage de l'application on Relaunch


Sujet :

Android

  1. #1
    Membre éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2007
    Messages
    697
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 697
    Points : 1 241
    Points
    1 241
    Par défaut Plantage de l'application on Relaunch
    Bonjour,

    J'ai une application qui est composé d'une première Activity qui affiche un splash screen et qui lance une deuxième activity en lui fournissant des extras.
    Mais quand je relance l'application en cliquant sur l’icône de l'appli, android me relance directement ma deuxième activity (qui donc n'a pas les extras et plante). Tout cela en repassant dans le onCreate.

    Si quelqu'un peut m'expliquer ce comportement qui apparait même quand on kill l'app et on vide la mémoire.

    A noter que l'activity splashscreen s'auto finish() après avoir lancer l'activity principale.

  2. #2
    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
    Si quelqu'un peut m'expliquer ce comportement qui apparait même quand on kill l'app et on vide la mémoire.
    Si après avoir killé l'application, cela te ramnère directement à la deuxième Activity, ce n'est vraiment pas normal.

    Par contre, le comportement que tu décris est tout à fait normal puisque la seconde Activity est la seule à rester dans la pile.
    Pour éviter ces problèmes, il faut soit :
    • Ne pas faire de splashScreen (à éviter d'après les guidelines officielles).
    • Sauvegarder ces extras que tu obtiens du splashScreen.


    Pour la seconde approche, il faut utiliser le même méchanismes d'extras sauf qu'ils ne serviront que pour l'Activity qui les as déclaré.
    Il faut donc que tu enregistres tes données dans la méthode OnSavedInstanceState.

    Exemple tiré de la documentation officielle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    static final String STATE_SCORE = "playerScore";
    static final String STATE_LEVEL = "playerLevel";
    ...
     
    @Override
    public void onSaveInstanceState(Bundle savedInstanceState) {
        // Save the user's current game state
        savedInstanceState.putInt(STATE_SCORE, mCurrentScore);
        savedInstanceState.putInt(STATE_LEVEL, mCurrentLevel);
     
        // Always call the superclass so it can save the view hierarchy state
        super.onSaveInstanceState(savedInstanceState);
    }

  3. #3
    Membre éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2007
    Messages
    697
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 697
    Points : 1 241
    Points
    1 241
    Par défaut
    Merci de ta réponse. Pour le SplashScreen, je sais bien que c'est déconseillé mais le client en veux un comme sur iphone.

    Bon en fait il semblerai que soit un bug d'eclipse/git. Le manifest présent dans "bin" n'était pas le même que celui à la racine...
    Quand je déployais l'appli avec eclipse, ça utilisait le bon manifest mais après ça utilisait le manifest foireux (dans laquelle je lançais directement la deuxième activity pour accélérer les testes) de bin. Bizarre

    Un petit clean du projet a résolu le problème.

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

Discussions similaires

  1. Plantage d'une application CWinApp traitement particuliers
    Par Aradesh dans le forum Visual C++
    Réponses: 12
    Dernier message: 07/04/2008, 11h39
  2. EndDialog => plantage de l'application
    Par alexadvance dans le forum MFC
    Réponses: 2
    Dernier message: 18/03/2008, 10h12
  3. instruction SaveAs : plantage de l'application lorsque le fichier est créé
    Par Aimé_Lacapelle dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 31/08/2007, 19h43
  4. Réponses: 2
    Dernier message: 31/01/2007, 09h57
  5. plantage éditions PDF (application ASP)
    Par dev-man dans le forum ASP
    Réponses: 3
    Dernier message: 13/02/2006, 18h59

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