Correctly manage the service over the activity lifecycle.

Per http://developer.android.com/guide/components/bound-services.html#Binding:

"Note: You should usually not bind and unbind during your activity's
onResume() and onPause(), because these callbacks occur at every lifecycle
transition and you should keep the processing that occurs at these
transitions to a minimum. Also, if multiple activities in your application
bind to the same service and there is a transition between two of those
activities, the service may be destroyed and recreated as the current
activity unbinds (during pause) before the next one binds (during resume)."