Open In App

Service vs IntentService in Android

Last Updated : 27 Sep, 2021
Improve
Improve
Like Article
Like
Save
Share
Report

We all come across a variety of mobile applications that operate in the background on a daily basis. Furthermore, in many apps, certain activities are carried out without the use of any UI, i.e. the work is carried out in the background. For example, the Music app on our mobile device or any other Music app runs in the background, and you may use any other program properly while using the Music app. As a result, the Service or IntentService is used to achieve this functionality.

In this article, we will examine the distinctions between the Service and the IntentService. But, before we go any further, let’s go through Service and IntentService again.

Difference Table

Service

Intent Service

Consider Service to be an Android component that is used to execute various long-running activities in the background, such as in the Music app, where we run the app in the background while using other mobile applications concurrently. The nicest aspect is that no UI is required for the processes to be executed in the background. The IntentService’s base class is the Service. Essentially, it follows the “work queue process” structure, with the IntentService handling client on-demand requests (represented as Intents).
You can also perform some InterProcess Communication (IPC) by using Service. As a result, you can perform a number of operations concurrently with the help of Service because any application component can start a Service and run it in the background. When a client submits a request, the Service is launched, and after handling each and every Intent, the Service is terminated.
The user will never know what is going on in the background of the program in this case. Clients can use Context.startService to make a request to start a Service (Intent). In this case, a worker thread is established, and all requests are handled by the worker thread, but only one request is processed at a time.
When one or more application components bind the Service using the bindService() function, it is referred to as a bound service. If the apps unbind the Service, it will be destroyed. The Service may be activated from any thread, but the IntentService can only be triggered from the main thread, which means that the Intent is received on the Main thread first, and then the Worker thread is run.
As a result, you may conduct a lot of tasks concurrently with the assistance of Service since any application component can start a Service and run it in the background. You will have difficulty interacting with the application’s UI if you use IntentService. If you wish to display certain IntentService results in your UI, you must use an Activity.
To start a Service, use the onStartService() function, but to start an IntentService, use Intent, i.e. start the IntentService by calling Context.startService (Intent). Because Service operates on the Main thread, there is a risk that your Main thread will be stopped if you utilise it. In the case of IntentService, however, the Main thread is not involved. The jobs are completed in the form of a queue, i.e. on a first-come, first-served basis.

Conclusion

In this article, we learned about the distinctions between Android’s Service and IntentService. We spoke about some of the many ways to start and terminate the Service and IntentService. If you only need a few activities to be done in the background, you may use Service; otherwise, you can use IntentService.


Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads