A specification of the requirements that need to be met before a WorkRequest can run.
By default, WorkRequests do not have any requirements and can run immediately.
By adding requirements, you can make sure that work only runs in certain situations -
for example, when you have an unmetered network and are charging.
An enumeration of backoff policies when retrying work.
These policies are used when you have a return ListenableWorker.Result.retry() from a worker to determine the correct backoff time.
Backoff policies are set in WorkRequest.Builder.setBackoffCriteria(BackoffPolicy, long, TimeUnit) or one of its variants.