Yeah I agree - it is ugly, but for my purposes it worked... the intents
wouldn't be fired one right after the other for me.
On Wed, Apr 22, 2009 at 4:02 PM, Tom Gibara <m...@tomgibara.com> wrote:

> Setting the data uniquely in this way is a bit ugly - and what if you post
> two intents within the granularity of the clock?
> I use unique request codes. I can't claim that this is the intended use for
> them (the documentation is a bit sparse) but it seems to work well.
> Tom.
>
> 2009/4/22 Rob Franz <rob.fr...@gmail.com>
>
> Hi Dianne,I thought that the goal was to create unique pendingIntents...
>> i.e. don't cancel or change the currently pending one.
>>
>> For me, changing the extras didn't work - doing the setData() with the
>> random value made the intent 'unique' in the eyes of the notification
>> manager...i wanted the ability to send multiple different pending intents,
>> and that's worked for me thus far.
>>
>> -rob
>>
>>
>> On Wed, Apr 22, 2009 at 3:44 PM, Dianne Hackborn <hack...@android.com>wrote:
>>
>>> I hope you aren't writing constants into real code like that. :}
>>>
>>> For changing the extras -- you need to use cancel, and this will result
>>> in a new PendingIntent that you need to send to the notification manager.
>>> As of cupcake you can alternatively use the new FLAG_UPDATE_CURRENT.
>>>
>>>
>>> On Thu, Mar 26, 2009 at 7:05 PM, Rob Franz <rob.fr...@gmail.com> wrote:
>>>
>>>> Actually it looks like
>>>> PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0,
>>>> intent, 0x10000000);
>>>>
>>>> ...works for me (0x10000000 represents FLAG_CANCEL_CURRENT).  I can
>>>> verify that the appropriate extras data makes it to the intent.  Hope this
>>>> helps.
>>>>
>>>> -Rob
>>>>
>>>> On Thu, Mar 26, 2009 at 9:29 PM, Rob Franz <rob.fr...@gmail.com> wrote:
>>>>
>>>>>
>>>>> I'm running into the same thing - sending multiple PIs with the extras
>>>>> data changing each time.  If I send two PIs, I get the first PI extra
>>>>> data.  I'm glad someone else ran into this, because I was going crazy
>>>>> trying to find out why my stuff wasn't working.
>>>>>
>>>>> Seeing a couple of different opinions here... what's the Google-
>>>>> preferred way to do it?  I'm in the US on TMobile so I believe it's
>>>>> RC33 that I've got.
>>>>>
>>>>> Thanks
>>>>> Rob
>>>>>
>>>>>
>>>>> On Mar 26, 7:08 pm, "info+farm" <bilgiciftl...@gmail.com> wrote:
>>>>> > Thank you for your detailed answer Blake B.,
>>>>> >
>>>>> > First of all I understood that different Extras are not act as a
>>>>> > difference on PendingIntent comparison.
>>>>> >
>>>>> > In the first option assigning a stub data element seems reasonable
>>>>> but
>>>>> > I did not like the approach to put not only irrelevant but also not
>>>>> > necessary data on each intent call to distinguish them.
>>>>> >
>>>>> > With the second approach, assigning FLAG_CANCEL_CURRENT flag to the
>>>>> > PendingIntent worked well on button calls but did not work on
>>>>> > notification calls. I received "Sending contentIntent failed:
>>>>> > android.app.PendingIntent$CanceledException" error in logcat on each
>>>>> > different PendingIntent start. I have seen a bug report is made about
>>>>> > this issue(#13) on android-astrid.
>>>>> > In the issue, it is said that although the javadoc says requestCode
>>>>> is
>>>>> > not used, the real OS code consider the value specified there. Then,
>>>>> I
>>>>> > used the requestCodes to distinguish the PendingIntent starts.
>>>>> >
>>>>> > Is it possible to get information from the API builders, what will be
>>>>> > the purpose of the requestCode parameter on PendingIntent creation in
>>>>> > the future? The reason is I want to be able to sure that my code
>>>>> won't
>>>>> > stuck at that time of API change.
>>>>> >
>>>>> > Regards,
>>>>> > info+farm
>>>>> >
>>>>> > On Mar 25, 5:01 pm, "Blake B." <bbuckle...@yahoo.com> wrote:
>>>>> >
>>>>> > > To correct my previous statement, PendingIntents are cached by the
>>>>> > > system, not Intents.  The note about how to differentiate Intents
>>>>> > > still holds though, so if you need to replace a current
>>>>> PendingIntent
>>>>> > > with a new PI that has a new Intent that only differs by its
>>>>> Extras,
>>>>> > > be sure to use the flag FLAG_CANCEL_CURRENT so that the cached PI
>>>>> is
>>>>> > > not used.
>>>>> >
>>>>> > > From Intent.filterEquals(o):
>>>>> > >     Returns true if action, data, type, class, and categories are
>>>>> the
>>>>> > > same.  <== note does not include Extras
>>>>> >
>>>>> > > From PendingIntents javadoc:
>>>>> >
>>>>> > >  * <p>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
>>>>> > >  * {...@link #cancel} to remove it.
>>>>> >
>>>>> > > On Mar 25, 7:48 am, "Blake B." <bbuckle...@yahoo.com> wrote:
>>>>> >
>>>>> > > > Intents are cached by the system, and two Intents are not
>>>>> > > > differentiated by their Extras.  So your two intents look like
>>>>> the
>>>>> > > > same Intent and the second one is being tossed out.  You must
>>>>> differ
>>>>> > > > Intents by their Action/Data/Category.  I will sometimes use the
>>>>> Data
>>>>> > > > field to hold a simple ID that is not really a URI to make two
>>>>> intents
>>>>> > > > appear different.  Look at the code for Intent.equals() I
>>>>> believe, and
>>>>> > > > you will see that Extras are not considered.
>>>>> >
>>>>> > > > On Mar 24, 12:47 pm, "info+farm" <bilgiciftl...@gmail.com>
>>>>> wrote:
>>>>> >
>>>>> > > > > Are not Google developers looking into this forum anymore?
>>>>> >
>>>>> > > > > Then, I will be missing the detailed answers.
>>>>> >
>>>>> > > > > Regards,
>>>>> > > > > info+farm
>>>>> >
>>>>> > > > > On Mar 24, 3:17 pm, "info+farm" <bilgiciftl...@gmail.com>
>>>>> wrote:
>>>>> >
>>>>> > > > > > Hello Mr. Murphy,
>>>>> >
>>>>> > > > > > I searched for it before sending my post and looked at
>>>>> >
>>>>> > > > > >
>>>>> http://groups.google.com/group/android-developers/browse_thread/threa.
>>>>> ..
>>>>> > > > > > andhttp://
>>>>> groups.google.com/group/android-developers/browse_thread/threa...
>>>>> >
>>>>> > > > > > But both of them could not find the answer to the problem.
>>>>> >
>>>>> > > > > > I am afraidPendingIntenthas different Intent
>>>>> initialization(start
>>>>> > > > > > ()), from the normal startActivity().
>>>>> >
>>>>> > > > > > I am a little bit confused,
>>>>> >
>>>>> > > > > > Regards,
>>>>> > > > > > info+farm
>>>>> >
>>>>> > > > > > On Mar 23, 11:32 pm, Mark Murphy <mmur...@commonsware.com>
>>>>> wrote:
>>>>> >
>>>>> > > > > > > info+farm wrote:
>>>>> > > > > > > > Am I the only one who is having this problem?
>>>>> > > > > > > > Actually, I am going to find a workaround for this
>>>>> problem, but I
>>>>> > > > > > > > would like to know what I am doing wrong.
>>>>> >
>>>>> > > > > > > I do not remember the answer, but I do know this was
>>>>> discussed on this
>>>>> > > > > > > list within the past few months. Search the list
>>>>> forPendingIntentand
>>>>> > > > > > > you will probably find it.
>>>>> >
>>>>> > > > > > > --
>>>>> > > > > > > Mark Murphy (a Commons Guy)http://commonsware.com
>>>>> > > > > > > Warescription: Three Android Books, Plus Updates, $35/Year
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>> --
>>> 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
-~----------~----~----~----~------~----~------~--~---

Reply via email to