2011-10-17 18 views
9

Sarei felice di sapere come verificare se l'intent Pending che viene attivato da un Alarm Manager che avvia un'attività in un momento specifico indicato da AlarmManager.setRepeating?Come verificare se l'intent Pending attivato da AlarmManager setRepeating è già in esecuzione?

Per essere più specifico, ho un'attività che avvia un'altra attività con un tempo impostato in modo particolare o un tempo di ripetizione (che funziona). Ma voglio sapere se la richiesta è già stata impostata dall'utente? in quel caso non dovrei iniziare certi valori.

Ecco come avviare l'attività pianificata.

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ì, è utile. – NyanLH

+0

Ehi, grazie. Sono contento che ci abbia aiutato. Potrebbe dare un +1 che potrebbe aiutarmi. :) – Wesley

+0

In realtà, dovresti rispondere alla tua domanda e accettare la risposta. Quindi questa domanda non verrà visualizzata nell'elenco "senza risposta". –

risposta

18

Ok, penso che sono riuscito a scoprire come,

//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); 

Grazie, spero che potrebbe essere utile per qualcuno ...

+0

questa soluzione non funziona per me, il PendingIntent.FLAG_NO_CREATE rende sempre il PendingIntent risintonizzato. –

+0

So che questo è vecchio, ma questa informazione è errata, questo controllerà se l'allarme è stato impostato con l'intenzione specificata, non se l'intenzione è stata eseguita. – Gusman

Problemi correlati