Thanks for responses. I stumbled on the solution myself
I did use a broadcast reciever. I'm actually liking this because if i build a widget i should be able to code it to respond to the same broadcasts rather easily.
I'm also using a handler to talk to the service (once running), eg sending a message to request the data the service has cached. Which in turn makes the service send a broadcast of the cached data.