START_STICKYis used for services that are explicitly started and stopped as needed, while
START_REDELIVER_INTENTare used for services that should only remain running while processing any commands sent to them. Once the onDestroy() will called, the service will terminate.
Context.bindService()to obtain a persistent connection to a service. This likewise creates the service if it is not already running (calling
onCreate()while doing so), but does not call onStartCommand(). The client will receive the
IBinderobject that the service returns from its
onBind(Intent)method, allowing the client to then make calls back to the service. The service will remain running as long as the connection is established (whether or not the client retains a reference on the service's IBinder).