The doc is a little wrong. It is not used for sending the intent, but it is part of the key that unique identifies a pending intent.
On Sun, Oct 24, 2010 at 1:05 PM, Anil <[email protected]> wrote: > Thanks for the clarification. I have a followup. > You said, "...there is only one PendingIntent instance for a > particular combination of: app, type > (activity, broadcast, etc), request code, and intent filter" > > You mentioned request code. This is important for me because I need > some parameter to distinguish the multiple alarms. > However in the docs, it says, > > http://developer.android.com/reference/android/app/PendingIntent.html#getActivity%28android.content.Context,%20int,%20android.content.Intent,%20int%29 > "requestCode Private request code for the sender (currently not > used)." > > If request code is not used, then I am wondering how to distinguish > multiple alarms. Passing in extra params to the intent extras bundle > will not do because as you say, that is not used as a distinguishing > feature when comparing two pending intents. > > thanks, > Anil > ------------------ > > > On Oct 23, 10:48 pm, Dianne Hackborn <[email protected]> wrote: > > A PendingIntent lasts for as long as things have reference on it. It is > > not tied to an activity (well unless it is to deliver a result to an > > activity). > > > > As the doc says: > > > > A PendingIntent itself is simply a reference to a token maintained by the > > system describing the original data used to retrieve it. This means that, > > even if its owning application's process is killed, the PendingIntent > itself > > will remain usable from other processes that have been given it. If the > > creating application later re-retrieves the same kind of PendingIntent > (same > > operation, same Intent action, data, categories, and components, and same > > flags), it will receive a PendingIntent representing the same token if > that > > is still valid, and can thus call > > cancel()< > http://developer.android.com/reference/android/app/PendingIntent.html...() > > > > to > > remove it. > > > > The AlarmManager only maintains one record per PendingIntent "instance" > (as > > defined by the equals operator for PendingIntent). However it is > important > > to understand the semantics of creating a PendingIntent, in that there is > > only one PendingIntent instance for a particular combination of: app, > type > > (activity, broadcast, etc), request code, and intent filter. The latter > is > > very important since it means that if you ask for a PendingIntent for > Intent > > with action "foo", and give that to the alarm manager, and then time goes > by > > (and your process is killed and restarted etc), then when you again ask > for > > a PendingIntent for intent action "foo" you will get the *same* global > > instance is was returned by the first request, and thus the object will > be > > the same as the instance the alarm manager has, allowing you to cancel, > > replace, or otherwise modify that currently scheduled alarm. > > > > > > > > On Sat, Oct 23, 2010 at 8:32 PM, Anil <[email protected]> wrote: > > > Trying to write a simple alarm clock with multiple alarms. However, I > > > don't understand this part: when an alarm has been set and has to be > > > modified or deleted, then the PendingIntent is used to set the alarm > > > with flags FLAG_CANCEL_CURRENT, FLAG_UPDATE_CURRENT. > > > But how is this checked with those PendingIntents already registered > > > with the Alarm Manager? > > > Is it just a reference == comparison? (in which case when back button > > > is pressed then references to the PendingIntents in my activity are > > > lost), or are the parts of the intent compared in a equals() > > > comparison? > > > > > In other words, can we be confident that Alarm Manager will accurately > > > say, "This is the same alarm and needs to be updated rather than added > > > as a new one"? > > > thanks, > > > Anil > > > > > -- > > > You received this message because you are subscribed to the Google > > > Groups "Android Developers" group. > > > To post to this group, send email to > [email protected] > > > To unsubscribe from this group, send email to > > > [email protected]<android-developers%[email protected]> > <android-developers%[email protected]<android-developers%[email protected]> > > > > > For more options, visit this group at > > >http://groups.google.com/group/android-developers?hl=en > > > > -- > > Dianne Hackborn > > Android framework engineer > > [email protected] > > > > 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 [email protected] > To unsubscribe from this group, send email to > [email protected]<android-developers%[email protected]> > For more options, visit this group at > http://groups.google.com/group/android-developers?hl=en > -- Dianne Hackborn Android framework engineer [email protected] 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 [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/android-developers?hl=en

