Pergunta

Estou tendo alguns problemas com um aplicativo de alarme que estou desenvolvendo.

A primeira coisa que eu acho um pouco estranha é que, quando um alarme vai e acorda o telefone. Essas coisas acontecem.

OnCreate
Resumindo
OnPause
Resumindo

Por que eles são executados nessa ordem? Os dois últimos não devem ser chamados? E isso é o que me causa grandes problemas, porque quando eu pressiono para casa ou de volta ao telefone, a pausa é executada, da qual eu quero ligar para acabar (). E essa parte funciona como deveria, mas isso não funciona quando o telefone acorda subindo do sono bacaus da chamada na pausa ...

Alguma ideia?

Foi útil?

Solução

Eu sugiro que você veja como o aplicativo oficial de alarme lida com os eventos:https://android.googlesource.com/platform/packages/apps/deskclock

Outras dicas

Eu também tenho um problema semelhante: crio uma atividade e um serviço em segundo plano. Quando o serviço receber alguns dados da rede, ele trará a atividade. Tudo funciona bem até a atividade na fase Onstop e a tela fica preta. Quando tenho essa situação e solicito a atividade para reiniciar, tenho:

Onrestart OnStart OnResume onPause onNewintent OnResume

Como você pode ver, eu tenho um som, na pausa e outro no resumo e a atividade veio ao usuário.

Parece que é porque usamos uma atividade de singletop ou singleinstance (talvez também apareça no SingleTask). O problema é que, quando você envia uma intenção para uma atividade de singletop já criada, sua nova intenção ativa o método onNewIntent (). Da API, você pode ver que:

Uma atividade sempre será interrompida antes de receber uma nova intenção, para que você possa contar com o OnResume () ser chamado após esse método.

Então, talvez seja por isso que você recebe chamadas no resumo em forma de causa.

No entanto, este é um comportamento estranho!

Você realmente quer ligar para finalizar () em onPause ()? OnPause () é chamado quando a atividade atual não está mais em primeiro plano. Talvez você queira ligar para finalizar () no seu método ONSTOP (). Veja o Activity lifecycle para detalhes.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top