Yes, it helps me a lot!
I was really confused about that.

Thanks, Greg!  ;)


On Sat, Apr 4, 2009 at 4:37 AM, Greg Krimer <gkri...@gmail.com> wrote:

>
> Hi Taísa,
>
> I am reversing the order of your questions.
>
> > Did you say the main thread has its own handler?! So, if mine no more
> > exists, the it will handle that message?
>
> As Dianne said, your handler is not associated with the activity. The
> behavior of your handler is not influenced by the state of the
> activity in which it was created. The handler does not know or care
> that the activity is finished. Instead, the handler is associated with
> the messages that are destined for it. When you create a message and
> send it to some handler, a reference to the handler is placed into the
> target field of the message. So long as there are messages in the
> queue with your handler as the target, your handler will be called to
> service them. When there are no more messages in the queue whose
> target is your handler then, assuming there are no references to your
> handler anywhere else, your handler will be garbage collected like all
> normal objects. There is no magical link between your handler and the
> activity.
>
> > So, it's not "ugly" to finish my Activity and let that message in the
> > MessageQueue of the main thread? :)
>
> It is not ugly, but it may or may not be what you want. It depends on
> the action that the message triggers. I had just this same situation.
> In my case, the message after the "killer" message would have
> triggered an action that is not valid once the activity is finished.
> Since there is no magic link between the handler and the activity I
> had to make one: I implemented handleMessage() in such a way that it
> dropped messages if the activity was finished.
>
> In your case, if the message after the "killer" message is handled
> harmlessly when the activity is finished then you don't need to do
> anything special about it. Just leave it in the queue and it let your
> handler take care of it.
>
> Hope this helps.
>
> Greg
>
> On Apr 3, 11:31 am, Taísa Cristina <taisa.san...@gmail.com> wrote:
> >
> > On Fri, Apr 3, 2009 at 3:21 PM, Dianne Hackborn <hack...@android.com>
> wrote:
> > > Provided your process doesn't get killed, your process's main thread
> will
> > > handle that message whenever it comes up, regardless of what happened
> to the
> > > activity.  Handler doesn't know anything about the activity state.
> >
> >
> >
> >
> >
> >
> > > On Fri, Apr 3, 2009 at 11:17 AM, Taísa Cristina <
> taisa.san...@gmail.com>wrote:
> >
> > >> Hi all,
> >
> > >> I have a Handler implementation that is used in my Activity.
> >
> > >> While handling the messages, there's a value of "msg.what" which makes
> my
> > >> Activity to finish itself.
> >
> > >> My problem is that, when that "killer" message arrives, there's
> another
> > >> one in the message queue also destined to my handler.
> >
> > >> In this case, what happens if I just finish my Activity?
> >
> > >> I could see that no exception raised.  But, who will handle this lost
> > >> message since its Handler no longer exists?
> >
> > >> ** I have another Activity receiving messages containing the same data
> as
> > >> the killer one. So, [ I think ] I can't use "removeMessage(what,
> obj)".
> >
> > >> Taísa
> >
> > > --
> > > 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.
> >
> > --
> > Taísa Cristina Costa dos Santos
> > Computer Engineer
> > Brazil, SP
> > 55 19 8152-7453
> >
>


-- 
Taísa Cristina Costa dos Santos
Computer Engineer
Brazil, SP
55 19 8152-7453

--~--~---------~--~----~------------~-------~--~----~
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