/** * Schedule a request which will be executed in the future. If you want to update an existing * {@link JobRequest}, call {@link JobRequest#cancelAndEdit()}, update your parameters and call * this method again. Calling this method on the same request instance multiple times without * cancelling is idempotent. * * <br> * <br> * * Convenience method. Internally it calls {@link JobManager#schedule(JobRequest)} * and {@link #getJobId()} for this request. * * @return The unique ID for this job. */ public int schedule() { JobManager.instance().schedule(this); return getJobId(); }
@Test public void testFlex() { JobConfig.forceApi(JobApi.V_14); long interval = JobRequest.MIN_INTERVAL * 5; long flex = JobRequest.MIN_FLEX * 5; JobRequest request = getBuilder() .setPeriodic(interval, flex) .build(); JobManager.instance().schedule(request); assertThat(request.getJobId()).isGreaterThan(0); assertThat(request.getTag()).isEqualTo(DummyJobs.SuccessJob.TAG); assertThat(request.getIntervalMs()).isEqualTo(interval); assertThat(request.getFlexMs()).isEqualTo(flex); assertThat(request.isPeriodic()).isTrue(); assertThat(request.isFlexSupport()).isTrue(); }
@Test public void testSameIdAfterCancel() { JobRequest request = DummyJobs.createOneOff(); int jobId = request.getJobId(); assertThat(request.getScheduledAt()).isEqualTo(0L); manager().schedule(request); assertThat(request.getScheduledAt()).isGreaterThan(0L); JobRequest requestNew = request.cancelAndEdit().build(); assertThat(request.getScheduledAt()).isEqualTo(0L); int newId = requestNew.schedule(); assertThat(newId).isEqualTo(jobId); assertThat(request.getScheduledAt()).isEqualTo(0L); assertThat(requestNew.getScheduledAt()).isGreaterThan(0L); }
/** * Schedule a request which will be executed in the future. If you want to update an existing * {@link JobRequest}, call {@link JobRequest#cancelAndEdit()}, update your parameters and call * this method again. Calling this method on the same request instance multiple times without * cancelling is idempotent. * * <br> * <br> * * Convenience method. Internally it calls {@link JobManager#schedule(JobRequest)} * and {@link #getJobId()} for this request. * * @return The unique ID for this job. */ public int schedule() { JobManager.instance().schedule(this); return getJobId(); }