IntentService and JobIntentService

Daniyar
Oct 16, 2020

--

Photo by Hunters Race on Unsplash

First, let’s create IntentService and then migrate to JobIntentService.

IntentService

In Android 11 IntentService is deprecated.

Create from template IntentService:

In AndroidManifest.xml this code will be generated:

The MyIntentService.kt class should look like this:

In MainActivity.kt we will setOnClickListener on button and launch startActionFoo(…) static function:

Logcat output would look like this:

git link

JobIntentService

Now, let's migrate from IntentService to JobIntentService.

Change AndroidManifest.xml code:

MainActivity.kt class will stay the same.

In MyIntentService.kt do the following changes:

The Logcat result will be the same.

git link

Send results from JobIntentService to the UI

Let's send data from JobIntentService to TextView by clicking the Button.

First, create inner class MyResultReceiver(…), and pass it as a parameter to static function, which will start the service.

MainActivity.kt class code change:

In startActionFoo() function, we get receiver, put it into intent and start service.

In onHandleWork(…) we create Bundle, put required data there, and using receiver send it to UI.

Change MyIntentService.kt class's code:

Layout: When Button will be clicked, the text on TextView will be equal to the received text e.g. "param1"

git link

--

--

Daniyar

Google Certified Associate Android Developer