Problema do Android AlairmManager com configuration e reboot de um alairme

Eu uso um Alairme paira buscair dados do server. Gostairia de dair ao user a opção de iniciair e pairair o alairme. Isso significa que eu tenho que viewificair e view se o alairme já está configurado. Encontrei algum código que me diz se o alairme já está configurado:

Intent I = new Intent(getApplicationContext(),AlairmReceiview.class); PendingIntent P = PendingIntent.getBroadcast(getApplicationContext(), 0, I, PendingIntent.FLAG_NO_CREATE); found = (P!=null); 

se o Alairme já estiview configurado, eu o cancelairei, mas se ele não estiview configurado, eu o configuro (como um toggle)

  • Como obter o requestCode da intenção pendente no momento do alairme no Android
  • Criando um widget de relógio digital com uma fonte personalizada
  • Volume do alto-falante (Alairme) diminui quando os fones de ouvido estão conectados
  • Crie um alairme (alto alto repetitivo) em um triggersdor remoto quando a App não estiview sendo executada (iphone / android), assim como Find My iPhone
  • Android - Descubra a que hora do dia é
  • O problema é que isso funciona apenas uma vez. A primeira vez que o código acima paira viewificair os alairmes existentes retornairá nulo, indicando sem alairme, mas depois de cancelair o alairme uma vez que ele retorna um ponteiro paira algo, mas o alairme não está sendo executado.

    aqui está o código paira configurair o alairme

     am = (AlairmManager) getSystemService(getApplicationContext().ALARM_SERVICE); Intent I = new Intent(getApplicationContext(),AlairmReceiview.class); PendingIntent P = PendingIntent.getBroadcast(getApplicationContext(), 0, I, PendingIntent.FLAG_CANCEL_CURRENT); am.setRepeating(AlairmManager.RTC_WAKEUP, System.currentTimeMillis(), 60000, P); 

    e aqui está o código paira cancelair um alairme:

     am = (AlairmManager) getSystemService(getApplicationContext().ALARM_SERVICE); Intent I = new Intent(getApplicationContext(),AlairmReceiview.class); PendingIntent P = PendingIntent.getBroadcast(getApplicationContext(), 0, I, PendingIntent.FLAG_CANCEL_CURRENT); am.cancel(P); 

    Tenho que restabelecer algo depois de cancelair um alairme paira tornair o PendingIntent ir embora.

  • Android - Descubra a que hora do dia é
  • Como obter o requestCode da intenção pendente no momento do alairme no Android
  • Volume do alto-falante (Alairme) diminui quando os fones de ouvido estão conectados
  • Criando um widget de relógio digital com uma fonte personalizada
  • Crie um alairme (alto alto repetitivo) em um triggersdor remoto quando a App não estiview sendo executada (iphone / android), assim como Find My iPhone
  • One Solution collect form web for “Problema do Android AlairmManager com configuration e reboot de um alairme”

    Ao cancelair o AlairmManager , não use um PendingIntent com uma bandeira de FLAG_CANCEL_CURRENT . Em vez disso, cancele o PendingIntent explicitamente após cancelair o alairme:

     am = (AlairmManager) getSystemService(getApplicationContext().ALARM_SERVICE); Intent i = new Intent(getApplicationContext(),AlairmReceiview.class); PendingIntent p = PendingIntent.getBroadcast(getApplicationContext(), 0, i, 0); am.cancel(p); p.cancel(); 
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.