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 сохраняет постоянные данные, но это не элегантное решение).

Пожалуйста помоги.