2011-10-17 16 views
9

Me encantaría saber cómo comprobar si la intención pendiente es activada por un administrador de alarmas que inicia una actividad en un momento específico dado por AlarmManager.setRepeating?¿Cómo comprobar si la intención pendiente activada por AlarmManager setRepeating ya se está ejecutando?

Para ser más específicos, tengo una actividad que da inicio a otra actividad con un tiempo de ajuste parcial o repetición de tiempo (que funciona). Pero quiero saber si la solicitud ya fue establecida por el usuario? en ese caso, no debería comenzar ciertos valores.

Así es como comienzo la actividad programada.

Intent myIntent = new Intent(getBaseContext(),MyScheduledReceiver.class); 
PendingIntent pendingIntent = PendingIntent.getBroadcast(getBaseContext(), 0, myIntent, 0); 
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), interval, pendingIntent); 
+0

sí, es muy útil. – NyanLH

+0

Hola, gracias. Me alegro de que haya ayudado. Podría dar un +1 que podría ayudarme. :) – Wesley

+0

En realidad, debe responder su propia pregunta y aceptar la respuesta. Entonces esta pregunta no aparecerá en la lista "sin respuesta". –

Respuesta

18

Ok, creo que he conseguido averiguar cómo,

//CHECKING IF PENDING INTENT IS ALREADY RUNNING 
Intent checkIntent = new Intent(getApplicationContext(),MyScheduledReceiver.class); 
alarmUp = (PendingIntent.getBroadcast(getBaseContext(), 0, checkIntent, PendingIntent.FLAG_NO_CREATE) != null); 

Gracias, espero que podría ser útil para alguien ...

+0

esta solución no funciona para mí, el PendingIntent.FLAG_NO_CREATE hace que el PendingIntent reinvertido siempre sea nulo. –

+0

Sé que esto es antiguo, pero esta información es errónea, esto comprobará si la alarma se ha configurado con la intención especificada, no si el intento se ha ejecutado. – Gusman

Cuestiones relacionadas