57.2 Intent Service
As previously outlined, services run by default within the same main thread as the component from which they are launched. As such, any CPU intensive tasks that need to be performed by the service should take place within a new thread, thereby avoiding impacting the performance of the calling application.
The JobIntentService class is a convenience class (subclassed from the Service class) that sets up a worker thread for handling background tasks and handles each request in an asynchronous manner. Once the service has handled all queued requests, it simply exits. All that is required when using the JobIntentService class is that the onHandleWork() method be implemented containing the code to be executed for each request.
For services that do not require synchronous processing of requests, JobIntentService is the recommended option. Services requiring synchronous handling of requests will, however, need to subclass from the Service class and manually implement...