I am writing a service for my Android app and I am trying to understand how the binding mechanism works. If I bind my service in the onCreate of an activity but I don\'t unbind
The services are still running even after the activity gets closed. So you need to unbind the resource in onStop or onDestroy.
That happens when Android OS destroys Activity
and finds that a ServiceConnection
still bound to a running Service
, so you need to unbind the service before destroying your Activity
Typically your app is the only app that can access your Service (or have a use for it). If destroy your app with this Service still running then that Service no longer has a purpose. It will exist in memory consuming resources but doing nothing. By unbinding or stopping your Service when you are done, you return these resources so that they can be used by other apps.
Think of a child that spreads their toys across a room and then leaves. Everyone else in the house (the parents, siblings and guests) has no use for them and must walk around everything. The toys are simply in the way. If the child puts them away, then anyone can use the room for whatever they want.
Hope that helps!