title: How to schedule a job using JobScheduler only when device is not in doze (not even Maintenance window)?
body: <p>The JobInfo.Builder has a method for setting device idle state but i am confused as to what it is exactly trying to say.</p>
  
  <pre><code>setRequiresDeviceIdle (boolean requiresDeviceIdle)
  
  Specify that to run, the job needs the device to be in idle mode. This defaults to false.
  
  Idle mode is a loose definition provided by the system, which means that the device is not in use,
  and has not been in use for some time. As such, it is a good time to perform resource heavy jobs.
  Bear in mind that battery usage will still be attributed to your application, and surfaced to the user in battery stats.
  </code></pre>
  
  <p>Now the description for the boolean is as follows:</p>
  
  <pre><code>requiresDeviceIdle  boolean: Whether or not the device need be within an idle maintenance window.
  </code></pre>
  
  <p>I basically need the job to fire when the device is not dozing, preferably not even in the maintenance window. The purpose of the job is to download stuff from a network.</p>
  
  <p>Will setting it false cause it to run when the device is not in the maintenance window? ( the actual deep sleep state IDLE and the running state)</p>
  
  <p>will setting it to true cause it to run only in the maintenance windows and in no other cases?</p>