I am trying to use JobScheduler
to schedule a job per 3 seconds.
I have made my Job.Builder
ready, but still when I schedule the job, onStartJob()
is not getting called.
I am not sure what I am missing please help me.
JobBuilder
:
ComponentName componentName = new ComponentName(this,JobSchedulerService.class);
JobInfo.Builder builder = new JobInfo.Builder(0,componentName)
.setPeriodic(5 * 1000);
JobScheduler jobScheduler = (JobScheduler) getBaseContext().getSystemService(Context.JOB_SCHEDULER_SERVICE);
int id = jobScheduler.schedule(builder.build());
Log.i("Service","ID is :"+id);
Inside JobService
,
public class JobSchedulerService extends JobService {
@Override
public boolean onStartJob(JobParameters jobParameters) {
Message message = new Message();
message.what = Utils.JOB_SCHEDULER_WHAT;
message.obj = jobParameters;
handler.sendMessage(message);
return true;
}
@Override
public boolean onStopJob(JobParameters jobParameters) {
return false;
}
private final Handler handler = new Handler(){
@Override
public void handleMessage(Message msg) {
JobParameters jobParameters = (JobParameters)msg.obj;
Log.i("Service:","ServiceID:"+jobParameters.getJobId());
}
};
}
Please let me know how to get this done.