Android — Как правильно обработать onPause/onResume методы?

У меня есть приложение, которое начинает играть звуки и начинает/возобновляет геймплей в onResume () метод, но что я замечаю, то, что, если мое приложение было последним запущенным приложением, когда я поместил телефон в резервное устройство (экран прочь), и я просто нажимаю Кнопку меню для проверки времени, затем телефон начинает играть в игру и звучит в фоновом режиме (приложение не на самом деле видимо, только экран с датой/временем, все же onResume, должно быть, назвали в моем приложении). Что я должен сделать здесь? Существует ли способ различить то, что повторно активирует приложение, и затем добавьте условный оператор, который только запускает игру, когда приложение на самом деле видимо?

Вот отрывок от моего 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();
    }

Единственная вещь, которую я могу думать о выполнении, чтобы препятствовать тому, чтобы игра запустила каждый раз, когда экран включен (даже когда приложение не видимо) состоит в том, чтобы поместить this.finish () как последняя строка в onPause ()..., но это вынуждает Вас перезапустить приложение каждый раз, когда Вы хотите вернуться к нему, потому что прецессирование себя было уничтожено (который прекрасен, потому что мой onPause сохраняет персистентные данные, но это не изящное решение).

Помогите.

8
задан RyanM 22 April 2010 в 14:13
поделиться