Applications of IntentService
Ideal applications for IntentService
include just about any long-running task where the work is not especially tied to the behavior of a Fragment
or Activity
, and particularly when the task must complete its processing regardless of whether the user exits the application.
However, IntentService
is only suitable for situations where a single worker thread is sufficient to handle the workload, since it's work is processed by a single HandlerThread
, and we cannot start more than one instance of the same IntentService
subclass.
A usecase that IntentService
is ideally suited for is uploading data to remote servers. An IntentService
is a perfect fit because:
The upload usually must complete, even if the user leaves the application
A single upload at a time usually makes best use of the available connection, since bandwidth is often asymmetric (there is much smaller bandwidth for upload than download)
A single upload at a time gives us a better chance of completing each...