Android — Comment gérer correctement onPause/onResume méthodes?

J'ai une application qui démarre la lecture des sons et commence/reprend le gameplay dans le onResume() la méthode, mais ce que je constate, c'est que si mon appli a été la dernière exécution de l'application quand je mets le téléphone en veille (écran éteint), et je viens d'appuyer sur le bouton Menu pour vérifier l'heure, puis le téléphone commence à jouer le jeu et les sons en arrière-plan (l'application n'est pas visible, seul l'écran avec la date/heure de l'est, encore onResume doit avoir été appelé dans mon application). Que dois-je faire ici? Est-il un moyen de discerner ce qui est de la réactivation de l'application, puis ajouter une instruction conditionnelle qui commence seulement le jeu lorsque l'application est réellement visible?

Voici un extrait de mon onResume:

@Override
    protected void onResume()
    {
        mySaveGame = Utilities.loadSavegame(this);

        //check the savegame
        if(mySaveGame!=null)
        {
            //start game using savegame values
            this.startFromSavedGame(mySaveGame.getIsLevelComplete());   
        }
        else
        {
            //run the 1st-run components
            this.startFirstRun();
        }

        super.onResume();
    }

La seule chose que je peux penser à faire pour empêcher le jeu de démarrer à chaque fois que l'écran est allumé (même lorsque l'application n'est pas visible) est de mettre cette.finish() comme la dernière ligne onPause()... mais qui vous oblige à redémarrer l'application chaque fois que vous voulez revenir en arrière parce que la precess lui-même a été tué (ce qui est bien parce que mon onPause enregistre des données persistantes, mais ce n'est pas une solution élégante).

S'il vous plaît aider.

OriginalL'auteur RyanM | 2010-04-22