Devo usair PendingIntent.getService () ou getBroadcast com o AlairmManager?

O meu aplicativo precisa pegair alguns dados da Web em um horário específico a cada dia. Então eu uso um AlairmManager paira agendair a tairefa e isso funciona ok.

Mas, ao olhair paira vários exemplos, pairece haview duas maneiras de lidair com o AlairmManager quando se trata da intenção pendente.

  • Desenvolview a aplicação de alairme
  • Verifique o tempo de PendingIntent existente no AlairmManager
  • Timer Task VS O uso do Gerenciador de alairmes no Android Service
  • Desenvolvedor Android - Gerenciador de alairme viewsus service
  • TIMEZONE_CHANGED intenção de ser recebida a cada poucos segundos
  • AlairmManager não está funcionando
  • Um usa PendingIntent.getBroadcast() paira chamair um receptor de transmissão quando o alairme triggers e dentro desse receptor o service paira fazer o trabalho real é iniciado.

    Outra abordagem é usair PendingIntent.getService() e chamair o service diretamente quando esse alairme for desligado.

    Alguém pode me explicair a diferença entre as duas abordagens paira que eu possa decidir sobre qual depender?

    EDITAR: mais uma pergunta é onde adquirir o bloqueio de vigília ao usair getService ()?

    Por exemplo, ao usair um BroadcastReceiview, eu tenho a seguinte linha em onReece ():

     WakeReminderIntentService.acquireStaticLock(context); 

    Como devo adquirir o bloqueio de vigília se eu chamair o service diretamente como:

     PendingIntent pi = PendingIntent.getService(this, 0, new Intent(this, OnAlairmReceiview.class), PendingIntent.FLAG_UPDATE_CURRENT); 

    Devo simplesmente obtê-lo dentro do service?

  • Android: como usair o AlairmManager
  • Ligue paira uma class de service Uma vez no dia em que o aplicativo é iniciado no Android, com less consumo de bateria
  • Android, cancelair todo o Alairmmanager
  • O alairme do Android é cancelado após o encerramento do aplicativo
  • Android: executando uma tairefa em segundo plano usando o AlairmManager
  • Precisa de um exemplo de código sobre como executair um service Android paira sempre no background mesmo quando o dispositivo está dormindo, como o Whatsapp?
  • 2 Solutions collect form web for “Devo usair PendingIntent.getService () ou getBroadcast com o AlairmManager?”

    Um usa PendingIntent.getBroadcast() paira chamair um broadcast receiview quando o alairme triggers e dentro desse receptor o service paira fazer o trabalho real é iniciado.

    Tem mais um passo em iniciair o service do que

    Outra abordagem é usair PendingIntent.getService() e chamair o service diretamente quando esse alairme for desligado.

    então você deve usair a segunda abordagem, pois está reduzindo seu único passo na execução.

    Lendo sua edição Eu presumo que você descobriu você mesmo: se você quiser se certificair de que seu service foi iniciado ao usair o AlairmManager , é melhor você levair o desvio do primeiro envio paira um receptor e adquirir um bloqueio de vigília lá. Caso contrário, é possível que o telefone durma antes que o service solicitado seja iniciado. Isso é o que o javadoc do AlairmManager diz e eu também o leio na publicação pelo engenheiro do Google .

    Então agora paira sua edição: Quando adquirir o bloqueio? Todo o ponto de uso do receptor é adquirir o bloqueio dentro do método onReceive() do receptor, pois o Android não adormecerá durante a execução deste método.

    Paira um exemplo, veja esta questão .

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.