JobScheduler periódico no respeta las restricciones

Utilizando laJobScheduler, Configuré un simpleJobService como sigue:

@TargetApi(21)
public class SimpleJobService extends JobService {
    private static final String TAG = "SimpleJobService";

    @Override
    public boolean onStartJob(JobParameters jobParameters) {
        if (jobParameters.isOverrideDeadlineExpired()) {
            Log.d(TAG, "This shouldn't happen");
            Toast.makeText(this, "This shouldn't happen", Toast.LENGTH_LONG).show();
        }
        jobFinished(jobParameters, false);

        return true;
    }

    @Override
    public boolean onStopJob(JobParameters jobParameters) {
        return true;
    }
}

Luego configuro elJobService ser periódico (cada minuto) y requerir una red no medida y carga:

    ComponentName jobServiceComponent = new ComponentName(this, SimpleJobService.class);

    JobInfo.Builder builder = new JobInfo.Builder(2, jobServiceComponent);
    builder.setPersisted(true);
    builder.setPeriodic(60000);
    builder.setRequiresCharging(true);

    builder.setRequiredNetworkType(JobInfo.NETWORK_TYPE_UNMETERED);
    JobScheduler jobScheduler = (JobScheduler) getSystemService(Context.JOB_SCHEDULER_SERVICE);
    jobScheduler.schedule(builder.build());

losonStartJob de miSimpleJobService se llama independientemente de si mi dispositivo se está cargando o si está en una red no medida.

La documentación parasetPeriodic(long) dice que no se puede usar junto consetOverrideDeadline(long) (y no lo estoy de todos modos), pero me sorprende quejobParameters.isOverrideDeadlineExpired() enonStartJob es siempretrue con esta configuración

¿Me estoy perdiendo de algo?

Esto me parece un error de Android, pero me sorprende no haber podido encontrar a otras personas que informen este problema.

Este comportamiento se observó en Android 6.0.1

Respuestas a la pregunta(1)

Su respuesta a la pregunta