I have a question about which type of service I should be using to run the uploading and downloading of data in my application. 

Specifically it seems like a bound service (obtained by calling bindService()) is really more applicable since my background work is not running indefinitely and my understanding is that that is really the purpose of using startService/START\_STICKY. 

That said, I am running long uploads and downloads, and I do *not* want my service garbage collected mid-way through an upload/download regardless of what is going on with the application's UI (sent to background etc). As I understand it, if I have a bound service, it will be garbage collected as soon as the all the connections have been unbound. Does this mean my bound service would stop potentially midway through what it is doing?

Can anyone point me in the right direction here? Thanks in advance