Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android: Is it better to start and stop a service each time it is needed or to let a service run and bind to and unbind form it?

I'm developing an app that checks several conditions during an incoming phone call. The main parts of the app are a BroadcastReceiver listening for Intents related to the phone's status and a local Service checking the conditions.

At the moment the service is started each time an incoming call is detected and is stopped when the phone status changed back to idle.

Now I'm wondering if this procedure is correct and whether it is reasonable to start and stop the service related to the phone's status. Or would it be better to let the service run regardless of the phone's status and bind/unbind to/from it when needed.

Are there any performance issues I would have to think about? Perhaps it is more expensive to start/stop a service than letting it run and communicate with it. Are there any best practices out there regarding the implementation of services?

like image 508
Flo Avatar asked Mar 30 '10 12:03

Flo


1 Answers

Or would it be better to let the service run regardless of the phone's status and bind/unbind to/from it when needed.

Please don't. It will just take up RAM for no good reason. It is everlasting services like this that cause users to attack developers with task killers.

Are there any best practices out there regarding the implementation of services?

Here are two of my posts on the subject, for what they're worth.

like image 144
CommonsWare Avatar answered Sep 25 '22 21:09

CommonsWare