The only way that the ServiceConnection was not being freed is if
there was an Exception (other than RemoteException) being thrown
out of mTask.run(). Now the call to unbindService() is called
in a finally() block surrounding that block of code.
Change-Id: I597412233381894be76d3c8bdf99fc7d96794dc2