code: public void scheduleJob(View v) {
          if (!ensureTestService()) {
              return;
          }
  
          JobInfo.Builder builder = new JobInfo.Builder(kJobId++, mServiceComponent);
  
          String delay = mDelayEditText.getText().toString();
          if (delay != null && !TextUtils.isEmpty(delay)) {
              builder.setMinimumLatency(Long.valueOf(delay) * 1000);
          }
          String deadline = mDeadlineEditText.getText().toString();
          if (deadline != null && !TextUtils.isEmpty(deadline)) {
              builder.setOverrideDeadline(Long.valueOf(deadline) * 1000);
          }
          String period = mPeriodEditText.getText().toString();
          if (period != null && !TextUtils.isEmpty(period)) {
              builder.setPeriodic(Long.valueOf(period) * 1000);
          }
          boolean requiresUnmetered = mWiFiConnectivityRadioButton.isChecked();
          boolean requiresAnyConnectivity = mAnyConnectivityRadioButton.isChecked();
          if (requiresUnmetered) {
              builder.setRequiredNetworkType(JobInfo.NETWORK_TYPE_UNMETERED);
          } else if (requiresAnyConnectivity) {
              builder.setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY);
          }
          builder.setRequiresDeviceIdle(mRequiresIdleCheckbox.isChecked());
          builder.setRequiresCharging(mRequiresChargingCheckBox.isChecked());
          builder.setPersisted(mPersistedCheckbox.isChecked());
  
          String backoffTime = mBackoffDelayEditText.getText().toString();
          if (backoffTime != null && !TextUtils.isEmpty(backoffTime)) {
              int backoffPolicy = mBackoffLinearRadioButton.isChecked() ? JobInfo.BACKOFF_POLICY_LINEAR : JobInfo.BACKOFF_POLICY_EXPONENTIAL;
              builder.setBackoffCriteria(Long.valueOf(backoffTime) * 1000, backoffPolicy);
          }
  
          try {
              mTestService.scheduleJob(builder.build());
          } catch (IllegalArgumentException e) {
              Toast.makeText(this, e.getMessage(), Toast.LENGTH_SHORT).show();
          } catch (IllegalStateException e) {
              Toast.makeText(this, e.getMessage(), Toast.LENGTH_SHORT).show();
          }
      }
docs: UI onclick listener to schedule a job. What this job is is defined in
  TestJobService#scheduleJob().