Pergunta

Registrei meu aplicativo para enviar uma transmissão em algum momento específico usando o Alarm Manager e configurei um receptor para ouvir essa transmissão.

Agora pode haver 2 casos:

  1. O sistema operacional sente que existe uma trituração de memória e remove o aplicativo do plano de fundo. A documentação do Android diz que o sistema operacional garantirá que meu receptor recebe minha transmissão. É verdade ? Como posso testar esse caso?
  2. Um usuário decide fechar meu aplicativo usando qualquer assassino de tarefas. Vou receber transmissão nesse caso também? Caso contrário, existe alguma maneira de lidar com esse caso?
Foi útil?

Solução

O sistema operacional sente que existe uma trituração de memória e remove o aplicativo do plano de fundo.

Seu receptor não estará na memória de qualquer maneira. Seu receptor para uso com AlarmManager deve ser registrado no manifesto, e esses receptores vivem apenas o tempo que levar para onReceive() para correr.

É verdade ?

Sim.

Como posso testar esse caso?

Todo teste testará este caso, se o seu receptor estiver registrado no manifesto.

Um usuário decide fechar meu aplicativo usando qualquer assassino de tarefas. Vou receber transmissão nesse caso também?

No Android 2.1 e anterior, não. Os assassinos de tarefas também eliminam alarmes programados.

Caso contrário, existe alguma maneira de lidar com esse caso?

Na verdade, não, é por isso que isso foi eliminado com o Android 2.2.

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