Multiple calls to AlarmManager.setRepeating deliver the same Intent/PendingIntent extra values, but
Posted
by Chris Boyle
on Stack Overflow
See other posts from Stack Overflow
or by Chris Boyle
Published on 2010-05-16T15:22:55Z
Indexed on
2010/05/16
15:30 UTC
Read the original article
Hit count: 359
Solved while writing this question, but posting in case it helps anyone:
I'm setting multiple alarms like this, with different values of id
:
AlarmManager alarms = (AlarmManager)context.getSystemService(
Context.ALARM_SERVICE);
Intent i = new Intent(MyReceiver.ACTION_ALARM); // "com.example.ALARM"
i.putExtra(MyReceiver.EXTRA_ID, id); // "com.example.ID", 2
PendingIntent p = PendingIntent.getBroadcast(context, 0, i, 0);
alarms.setRepeating(AlarmManager.RTC_WAKEUP, nextMillis, 300000, p); // 5 mins
...and receiving them like this:
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(ACTION_ALARM)) {
// It's time to sound/show an alarm
final long id = intent.getLongExtra(EXTRA_ID, -1);
The alarm is delivered to my receiver at the right times, but often with EXTRA_ID
set to the wrong value: it's a value that I have used at some point, just not the one that I wanted delivered at that particular time.
© Stack Overflow or respective owner