code: public static void scheduleAsync(@NonNull final JobRequest.Builder baseBuilder, final long startMs, final long endMs,
                                       @NonNull final JobRequest.JobScheduledCallback callback) {
          JobPreconditions.checkNotNull(callback);
          JobConfig.getExecutorService().execute(new Runnable() {
              @Override
              public void run() {
                  try {
                      int jobId = schedule(baseBuilder, startMs, endMs);
                      callback.onJobScheduled(jobId, baseBuilder.mTag, null);
                  } catch (Exception e) {
                      callback.onJobScheduled(JobRequest.JobScheduledCallback.JOB_ID_ERROR, baseBuilder.mTag, e);
                  }
              }
          });
      }
docs: Helper method to schedule a daily job on a background thread. This is helpful to avoid IO operations
  on the main thread. The callback notifies you about the job ID or a possible failure. For more
  information about scheduling daily jobs see {@link #schedule(JobRequest.Builder, long, long)}.
  
  @param callback The callback which is invoked after the request has been scheduled.