Android - Como lidar adequadamente com os métodos onPause / onResume?
Eu tenho um aplicativo que começa a tocar sons e inicia / retoma a jogabilidade no método onResume (), mas o que estou notando é que se meu aplicativo foi o último aplicativo em execução quando coloco o telefone em modo de espera (tela desligada) e eu basta pressionar o botão Menu para verificar a hora e, em seguida, o telefone começa a jogar e soa em segundo plano (o aplicativo não está realmente visível, apenas a tela com a data / hora é, mas onResume deve ter sido chamado no meu aplicativo ) O que devo fazer aqui? Existe uma maneira de discernir o que está reativando o aplicativo e adicionar uma declaração condicional que só inicia o jogo quando o aplicativo está realmente visível?
Aqui está um trecho do meu 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();
}
A única coisa que consigo fazer para impedir que o jogo seja iniciado sempre que a tela é ligada (mesmo quando o aplicativo não está visível) é colocar this.finish () como a última linha da onPause () ... mas que força você a reiniciar o aplicativo toda vez que quiser voltar porque o precesse em si foi morto (o que é bom porque minha onPause salva dados persistentes, mas não é uma solução elegante).
Por favor ajude.