Utilizo una alarma para recuperar datos del servidor. Me gusta dar al usuario la opción de iniciar y detener la alarma. Esto significa que tengo que verificar y ver si la alarma ya está configurada. he encontrado un código que me dice si la alarma ya está establecido:Problema con Android AlarmManager al configurar y restablecer una alarma
Intent I = new Intent(getApplicationContext(),AlarmReceiver.class);
PendingIntent P = PendingIntent.getBroadcast(getApplicationContext(), 0, I, PendingIntent.FLAG_NO_CREATE);
found = (P!=null);
Si la alarma ya está establecido cancelo, pero si no se establece a continuación, lo fijo (como un conmutador)
El problema es que esto funciona solo una vez. La primera vez que el código anterior para comprobar las alarmas existentes devolverá NULL indica que no hay alarma, pero después de cancelar la alarma una vez que se devuelve un puntero a algo, pero la alarma no se está ejecutando.
Este es el código para fijar la alarma
am = (AlarmManager) getSystemService(getApplicationContext().ALARM_SERVICE);
Intent I = new Intent(getApplicationContext(),AlarmReceiver.class);
PendingIntent P = PendingIntent.getBroadcast(getApplicationContext(), 0, I, PendingIntent.FLAG_CANCEL_CURRENT);
am.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), 60000, P);
y aquí está el código para cancelar una alarma:
am = (AlarmManager) getSystemService(getApplicationContext().ALARM_SERVICE);
Intent I = new Intent(getApplicationContext(),AlarmReceiver.class);
PendingIntent P = PendingIntent.getBroadcast(getApplicationContext(), 0, I, PendingIntent.FLAG_CANCEL_CURRENT);
am.cancel(P);
soy yo para restablecer algo después de cancelar una alarma para que se PendingIntent desaparezca .
No estoy realmente seguro de por qué se está realizando la comprobación para ver si una alarma ya existe. ¿Puedes explicar tu razonamiento por favor? –
Quería tener un botón que actúe como un botón de activación/desactivación. También use el botón como indicador si la configuración de mi alarma se perdió debido a la falla de la aplicación. Uso la alarma para actualizar un widget cuando el usuario hace clic en el widget; abre una actividad en la que el usuario puede ver si la alarma está activada o no. Lo que me da miedo es que después de configurar la alarma, se apague y el usuario no sepa que está apagado. – Kemal