For my latest project I need to process some data and send it to a remote server. This was a perfect use case for an IntentService. I can just bundle my data as an extra, and start my service.

My biggest issue with an IntentService is that if it fails to start, I have essentially no way of knowing it failed. So I wanted a way to guarantee (or at least a best effort) that my intent starts up and processes my data.