У меня есть приложение, которое начинает играть звуки и начинает/возобновляет геймплей в 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 сохраняет персистентные данные, но это не изящное решение).
Помогите.
Рассматривали ли вы переход на onStart ()
и onStop ()
, а не на onResume ()
и onPause ()
?