Guillaume Perrot wrote:
> Using both startService and bindService is handy to wait for the
> onServiceConnected callback before requesting a singleton reference
> that is set in the service's onCreate.
> If you do this just after the startService, the reference will be
> null.

Correct, because startService() (and bindService() FWIW) are asynchronous.

> The startService is needed for the service to continue running when
> the activities have been destroyed (and call unbind).

Correct.

> A use case is a service managing a background XMPP connection in a
> chat/social application (only the "sign out" user action would call
> stopService).
> So, Mark I don't understand your point when you say not to use both
> startService and bindService.

Going through Binder, and all of the work to set up an out-of-process
connection to something in your same process, just to find out when a
service is ready for use, seems like a waste. I do not get the
impression that Binder is optimized for the in-process case, given all
of the comments to that effect from the core Android team.

To that end, I've put together a local IntentBus, that uses Intents and
IntentFilters to enable decoupled communication between activities and
services inside of a single process. It works like broadcast Intents,
just, er, "localcast" instead. If all goes well, an early cut of this
will go out as open source tomorrow. I haven't focused on this
particular scenario (activity starting a service and finding out when it
is ready for use), but it's probably a logical extension of the bus.

-- 
Mark Murphy (a Commons Guy)
http://commonsware.com | http://twitter.com/commonsguy

Android 1.5 Programming Books: http://commonsware.com/books.html

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