So how does that work?

(1) I still have a Receiver that is invoked by alarms.
(2) I would bind to my service in the onReceive() method, (3) pass in a
ServiceConnection, and the onReceive() method invocation is done so far.
(4) Then I get notified via ServiceConnection.onConnected() that my service
is bound and (5) will cast the IBinder to my local interface? Using this
interface I call my service method to do the actual work. (6) Can I stay in
the current thread then or do I need to spawn my own?
(7) After control flow returns from the method that does the actual work,
still in onConnected(), I will unbind the service.

(8) Does that sound about right?

(9) Do I still need the partial wake lock? (10) And if so, where would I
acquire/release it? Acquire between (4) and (5) and release after (7)?

Oh life would be so easy if I could just register my thread as a service ;-)



On Mon, Mar 2, 2009 at 8:41 AM, Al Sutton <[email protected]> wrote:

>
> Thread's should never be started in a BroadcastReceiver because the
> containg task ends when the onReceive method ends.
>
> The suggestion at
> http://developer.android.com/guide/practices/design/responsiveness.htmlis;
>
> "But instead of doing intensive tasks via child threads (as the life of
> a BroadcastReceiver is short), your application should start a Service
> <http://developer.android.com/reference/android/app/Service.html> if a
> potentially long running action needs to be taken in response to an
> Intent broadcast."
>
> Just as Jon has done.
>
> Al
> http://andappstore.com/
>
> Jon Colverson wrote:
> > I don't think it's valid to start a Thread in a BroadcastReceiver. The
> > system doesn't know anything about that thread, so it wouldn't know
> > that it's supposed to keep the process hosting it around. My app
> > nanoTweeter does similar background polling and I acquire the WakeLock
> > in the BroadcastReceiver and then start a Service. That service
> > releases the lock when it's done.
> >
> > --
> > Jon
> >
> > >
> >
>
>
> --
>
> * Written an Android App? - List it at http://andappstore.com/ *
>
> ======
> Funky Android Limited is registered in England & Wales with the
> company number  6741909. The registered head office is Kemp House,
> 152-160 City Road, London,  EC1V 2NX, UK.
>
> The views expressed in this email are those of the author and not
> necessarily those of Funky Android Limited, it's associates, or it's
> subsidiaries.
>
>
> >
>

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

Reply via email to