Pergunta

Estou tentando criar um aplicativo de programação de tarefas e fiz um aplicativo de alarme tentando aprender a fazer essa parte pelo menos. Ele usa AlarmManager E faz um alarme disparar no momento escolhido por um TimePicker. Mas não funciona quando o emulator está desligado e ligado novamente.

Então estou tentando usar BroadcastReceiver Mas eu não entendo nenhum dos guias ... quero dizer, devo definir o intent que o alarm manager faz para o BroadcastReciever? Ou posso apenas iniciar o aplicativo e o alarme existe novamente ou o quê? Como os alarmes são armazenados no Android?

Foi útil?

Solução

Mas não funciona quando o emulador está desligado e ligado novamente.

Esse é o comportamento correto - AlarmManagerO cronograma é liberado em uma reinicialização. Você precisa se registrar especificamente para receber o ACTION_BOOT_COMPLETED Transmitir, para restabelecer seus eventos de alarme após uma reinicialização.

Quero dizer, devo definir a intenção que o gerente de alarme faz para o BroadCastreciever?

Bem, se você estiver usando um _WAKEUP-Style Alarm, a receita é usar um getBroadcast() PendingIntent com AlarmManager, onde o BroadcastReceiver é também uma WakefulBroadcastReceiver (e segue essas instruções) ou passa o controle para minha WakefulIntentService.

Eu tenho exemplos um tanto contividos de usar WakefulIntentService e WakefulBroadcastRecevier.

Como os alarmes são armazenados no Android?

Afaik, eles são mantidos na memória de um processo principal do sistema operacional e não são persistidos.

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