jobscheduler/src/main/java/me/tatarka/support/job/JobService.java
public final void jobFinished(JobParameters params, boolean needsReschedule) {
        ensureHandler();
        Message m = Message.obtain(mHandler, MSG_JOB_FINISHED, params);
        m.arg2 = needsReschedule ? 1 : 0;
        m.sendToTarget();
    }
public final void jobFinished(JobParameters params, boolean needsReschedule) {
        ensureHandler();
        Message m = Message.obtain(mHandler, MSG_JOB_FINISHED, params);
        m.arg2 = needsReschedule ? 1 : 0;
        m.sendToTarget();
    }
Callback to inform the JobManager you've finished executing. This can be called from any
thread, as it will ultimately be run on your application's main thread. When the system
receives this message it will release the wakelock being held.
<p>
You can specify post-execution behaviour to the scheduler here with
<code>needsReschedule </code>. This will apply a back-off timer to your job based on
the default, or what was set with
{@link android.app.job.JobInfo.Builder#setBackoffCriteria(long, int)}. The original
requirements are always honoured even for a backed-off job. Note that a job running in
idle mode will not be backed-off. Instead what will happen is the job will be re-added
to the queue and re-executed within a future idle maintenance window.
</p>

@param params          Parameters specifying system-provided info about this job, this was given to
your application in {@link #onStartJob(JobParameters)}.
@param needsReschedule True if this job should be rescheduled according to the back-off
criteria specified at schedule-time. False otherwise.