views:

137

answers:

2

I'm new to Android development and I couldn't find this in the Dev Guide.

I would like to create a background service so that any other app could connect to it and get some data from it. I saw android.app.Service, but it seems that it only allows other apps to ping the service, it doesn't allow them to register for some specific events. I had in mind something like the built in LocationManager and its addProximityAlert or even requestLocationUpdates.

Is anything like this possible with the existing sdk?

A: 

maybe this sample could help you: RemoteService.

This is the description from android developer site:

Remote Service Controller and Remove Service Binding Demonstrates starting a service in a separate process, by assigning android:process=":remote" to the service in the AndroidManifest.xml file. Shows how those clients can either start/stop it with {@link android.content.Context#startService Context.startService} and {@link android.content.Context#stopService Context.stopService}, or bind and call it with {@link android.content.Context#bindService Context.bindService} and {@link android.content.Context#unbindService Context.unindService}. Binding is similar to the local service sample, but illustrates the additional work (defining aidl interfaces) needed to interact with a service in another process. Also shows how a service can publish multiple interfaces and implement callbacks to its clients.

hara
Thank you both. I will try it later today.
Matic
+1  A: 

Hi and welcome to android development. I hope you enjoy your stay :D. About your question:

What you are asking is done with a Service. If you want apps to register for events what is usually done is the following:

  • Create the service with all the logic.
  • Make the service send a Broadcast msg.
  • All interested apps will have a receiver class to get that msg.

I would like to know what you are trying to do to give you further assistance.

Macarse