Android comienza a ejecutar JobScheduler a una hora específica

Quiero iniciar un JobScheduler en un momento específicocada día, y terminarlo después de 3 horas.

Tengo la parte de activar el trabajo cada 20 min, y durante 3 horas, pero en la clase JobInfo.Builder no hay opción para comenzar el trabajo en un momento exacto.

Repasando elJobInfo.Builder descripción general de la clase, no hay nada allí que establezca el tiempo para iniciar un JobScheduler.

Obviamente, no quiero ejecutarlo durante todo el día, y verifique que el tiempo coincida, esto agotará más batería de la necesaria y es una mala programación.

Estaba pensando en hacer que se activara una alarma en el momento que especifico y desencadenaría este trabajo, pero esto parece ser un poco exagerado.

 JobInfo.Builder builder = new JobInfo.Builder(NIGHT_SYNC_JOB_ID, 
 new ComponentName(context, NightSyncDataJobService.class));

 //Job starts at 11pm, and ends at 2am. Running every 20 minutes.
 builder.setPersisted(true); //Job scheduled to work after reboot
 builder.setPeriodic(Consts.ONE_MINUTE * 20);

 JobScheduler jobScheduler = (JobScheduler) context.getSystemService(Context.JOB_SCHEDULER_SERVICE);
 jobScheduler.schedule(builder.build());

Si tiene alguna otra solución al problema, además de AlarmManger que activa este JobScheduler, será muy apreciado.

Respuestas a la pregunta(2)

Su respuesta a la pregunta