I want to start and end scheduling through start and stop buttons. Once the scheduling works in the background, how can I stop it and vice versa? I didn't find the way to stop scheduler anywhere. cancelAll() only cancels the pending jobs but the scheduler does works again.
public class LiveTrack extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_live_track);
//start scheduling
startLiveTrackBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
jobScheduler = (JobScheduler)getSystemService(JOB_SCHEDULER_SERVICE);
ComponentName jobService =
new ComponentName(getPackageName(), MyJobService.class.getName());
JobInfo jobInfo =
new JobInfo.Builder(MYJOBID, jobService)
.setPeriodic(15 * 60 * 1000L)
.setExtras(bundle)
.build();
int jobId = jobScheduler.schedule(jobInfo);
if(jobScheduler.schedule(jobInfo)>0){
}else{
Log.e("status","failed");
}
}
}
//stop scheduling
endLiveTrackBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//how can I stop scheduling here until the start button is clicked again??
jobScheduler.cancelAll();
}
});
}
}
public class MyJobService extends JobService{
@Override
public boolean onStartJob(JobParameters jobParameters) {
//some work
}
@Override
public boolean onStopJob(JobParameters jobParameters) {
}
}