Background service android LEARNOVITA

How to create a Background Services In Android | Services Overview | The Ultimate Guide

Last updated on 03rd Nov 2022, Artciles, Blog

About author

Pavni Krish (Senior QA Engineer )

Pavni Krish is a Senior QA Engineer in manual testing with 8+ years of experience, and she has skills in TestLodge, Zephyr, TestLink, Trello, Jira, Basecamp, Sauce Labs, and Browser Shots.

(5.0) | 19358 Ratings 2134
    • In this article you will learn:
    • 1.Introduction to Background Services.
    • 2.Handling Incoming Intents.
    • 3.Types of a Android Services.
    • 4.The Life Cycle of Android Services.
    • 5.Fundamentals of a Android Services.
    • 6.How can run background tasks?
    • 7.Conclusion.

Introduction to a Background Services:

The IntentService class provides the straightforward structure for a running an operation on the single background thread. This allows for a long running operations to be handled without an affecting a responsiveness of user interface. Also, IntentService is not affected by a most user interface lifecycle events, so it continues to the run under conditions that would kick off AsyncTask.

There are some limitations of an IntentService:

  • It cannot interact directly with a user interface. To put its results in an UI, need to send them to the Activity.
  • Task a requests run sequentially. If IntentService has an operation going on, and send another request to it, the request waits for until a first operation is finished.
  • Operations running on a IntentService cannot be interrupted.
  • However, in most cases of IntentService is the preferred way to perform a simple background operations.
  • Create a own subclass of an IntentService. Make a required callback method onHandleIntent().
  • Explain a IntentService in the manifest file.

Handling Incoming Intents:

To create IntentService component for an app, explain a class that extends IntentService, and within it, explain a method that overrides onHandleIntent(). for example:

  • class RSSPullService: IntentService(RSSPullService::class.simpleName)
  • override fun on HandleIntent(WorkIntent: Intent) {
  • // get data from incoming intent
  • val datastring = workIntent.dataString
  • {
  • // operate here, based on contents of a datastring
  • }
  • }

Note: that the other callbacks of regular service component, such as onStartCommand() are automatically invoked by an IntentService. In an IntentService, should avoid overriding these callbacks.

Types of a Android Services

Types of a Android Services:

1. Foreground Services:

The services that inform the user about its ongoing operations are called the foreground services. Users can interact with a Service by providing information about the ongoing task. Like in downloading file, the user can keep track of a progress in downloading and can also pause and resume process.

2. Background Services:

Background services do not need any user intervention. These services do not notify a user about the background tasks running and user cannot access them either. Processes like a scheduled syncing of a data or storing data are covered under this service.

3. Bound Services:

This type of a Android service allows the components of an activity like application to bind themselves to it. Bound services perform their function as long as to any application component is bound to it. More than a one component is allowed to bind itself to a service at a time. The bindService() method is used to bind the application component to service.

The Life Cycle of a Android Services:

In Android, Services have a 2 possible paths to complete their life cycle, as namely Start and Bound:

1. Service Started (Unbound Service):

Following this a path, a service will be started when application component calls startService() method. Once started, a service can run continuously in a background even if a component responsible for starting a service is destroyed. There are two options available to stop an execution of a service:

  • By calling stopService() method,
  • The service can stop itself by using a stopSelf() method.
Android Services

2. Tied Service:

It can be thought of as server in the client-server interface. By following this path, Android application components can send a requests to the service and also receive results. A service is said to be bound when application component binds itself to the service by calling a bindService() method. To stop an execution of this service, all components must be detach themselves from a service using unbindService() method.

Fundamentals of a Android Services:

A user-defined service can be created through the generic class that extends a class Service. In addition, in order to complete operation of the service on a application, there are some callback methods that need to be an overridden. Following are some of important features of a Android Services:

Methods and Description:

OnStartCommand(): Android service calls this method when the component (eg: Activity).

Requests to start service using startService(). After a service is started: This can be explicitly stopped by using a stopService() or stopSelf() methods.

OnBind(): This method is the mandatory to implement in android service and it is be implemented.

Whenever application component calls the bindService() method: Arm yourself with the service. User-interface is also provided to be a communicate.

With service effectively done by returning a IBinder object: If binding of a service is not required, then method must return a void.

OnBind(): Android system implements this method when all the clients. Get disconnected from the particular service interface.

OnRebind(): Once all clients are disconnected from a particular interface of a service.

OnCreate(): Whenever service is created using the either onStartCommand() or onBind() .

One time set-up.– onDestroy(): When service is no longer in a use, the system invoked this method.

How can run a background tasks?

If building a large Android application, there may be a some real scenarios where need to perform a some tasks in a background. Since starting a service using a startService() command is not an option, need to find the other ways to perform tasks in a background.


These limits applied to the background service will definitely provide an extended battery life and also less RAM usage. Ultimately this will make this application smooth and also user happy.Android O is still in a DP1. There are 3 more developer previews to be released before a final version of Android O is released. There may be some API changes in upcoming release. So, now is a time to think about the implications of these changes in the application and think of an alternative solution to them. After Developer Preview 3-4 is released, apply those changes to the application and make application Android O compatible.

Are you looking training with Right Jobs?

Contact Us

Popular Courses