I would have probably seen that if the "operation" indicated by the "pendingintent" is used as a key.
But I am saying an explicit "removal" of the alarm containing the "operation" (pending intent). See the code (little) below. Moreover what one is doing is alarms.put("at 11pm", foo) alarms.put("at 12 pm", foo) Conceptually I would have understood if I did pendingintent.gooff("at 11"); pendingintent.gooff("at 12"); *** AlarmManagerService.java extract 160 public void setRepeating(int type, long triggerAtTime, long interval, 161 PendingIntent operation) { 162 if (operation == null) { 163 Slog.w(TAG, "set/setRepeating ignored because there is no intent"); 164 return; 165 } 166 synchronized (mLock) { 167 Alarm alarm = new Alarm(); 168 alarm.type = type; 169 alarm.when = triggerAtTime; 170 alarm.repeatInterval = interval; 171 alarm.operation = operation; 172 173 // Remove this alarm if already scheduled. 174 removeLocked(operation); 175 176 if (localLOGV) Slog.v(TAG, "set: " + alarm); 177 178 int index = addAlarmLocked(alarm); 179 if (index == 0) { 180 setLocked(alarm); 181 } 182 } 183 } AlarmManagerService doest maintain separate 'alarm' objects with every "set" even with the same equivalent intent. It then physically removes one of the alarm objects that were scheduled earlier. Is this to avoid a later confusion between two alarms with the same intent?? Anyway thanks for chiming in Satya On Wed, Jul 14, 2010 at 1:58 AM, Dianne Hackborn <hack...@android.com> wrote: > If they are the same intent, they can not be uniquely distinguished, so the > more recent one replaces the previous. > It's like doing: > HashMap<String, Foo> alarms; > Foo foo1 = new Foo(); > Foo foo2 = new Foo(); > alarms.put("mything", foo1); > alarms.put("mything", foo2); > The second call replaces the value of the first. > > On Tue, Jul 13, 2010 at 8:04 PM, Satya Komatineni > <satya.komatin...@gmail.com> wrote: >> >> It was a bit baffling (Probably there is a good reason, and it doesnt >> take much to baffle me) >> >> AlarmManager am; >> ... >> PendingIntent pi; >> >> >> am.set(pi, ...) at 11pm >> am.set(pi,...) at 2pm >> >> Same "pending intent" with the same intent and request code, in >> otherwords they resolve to same intent on equals. >> >> Although I know what happens (being the latest one takes precedence), >> I would have expected my broadcast receiver to be called twice. >> >> I thought something funny is happening in the PendingIntent. >> >> However when I looked at the AlarmManagerService.java I have noticed >> that the "set.." methods are calling a "remove" using the >> PendingIntent that is passed in, essentially cancelling the one >> before. >> >> Why is that?? >> >> It is late, my head hurts, I am hoping someone will throw some light. >> >> Thanks a bunch >> Satya >> >> -- >> You received this message because you are subscribed to the Google >> Groups "Android Developers" group. >> To post to this group, send email to android-developers@googlegroups.com >> To unsubscribe from this group, send email to >> android-developers+unsubscr...@googlegroups.com >> For more options, visit this group at >> http://groups.google.com/group/android-developers?hl=en > > > > -- > Dianne Hackborn > Android framework engineer > hack...@android.com > > Note: please don't send private questions to me, as I don't have time to > provide private support, and so won't reply to such e-mails. All such > questions should be posted on public forums, where I and others can see and > answer them. > > -- > You received this message because you are subscribed to the Google > Groups "Android Developers" group. > To post to this group, send email to android-developers@googlegroups.com > To unsubscribe from this group, send email to > android-developers+unsubscr...@googlegroups.com > For more options, visit this group at > http://groups.google.com/group/android-developers?hl=en -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en