What is a JobService in Android

IgorGanapolsky picture IgorGanapolsky · Jul 7, 2014 · Viewed 11.7k times · Source

I am inspecting the latest samples in Android-L developer SDK. There is a sample class in android-L/ui/views/Clipping/ClippingBasic called TestJobService. It extends from JobService, which in turn extends from Service. I see that JobService is a class in android.jar, but I cannot find any information on it in the dev guides, nor in the Android sourcecode www.androidxref.com. Has anybody seen this class or know what it's purpose is?

Answer

matiash picture matiash · Jul 7, 2014

It's a new type of service, that is invoked for tasks that are scheduled to be run depending on system conditions (e.g. idle, plugged in).

Entry point for the callback from the JobScheduler.

This is the base class that handles asynchronous requests that were previously scheduled. You are responsible for overriding onStartJob(JobParameters), which is where you will implement your job logic.

You basically create a JobInfo object that describes these conditions (with JobInfo.Builder) and set the component name of the service that must be executed.

To schedule them, you need the JobScheduler, which you can access with Context.getSystemService(Context.JOB_SCHEDULER_SERVICE).

By the way, L Preview Documentation is here, in case you didn't know about it.

UPDATE: Here is the doc about JobService: https://developer.android.com/reference/android/app/job/JobService.html