diff --git a/apex/jobscheduler/framework/java/android/app/job/JobInfo.java b/apex/jobscheduler/framework/java/android/app/job/JobInfo.java
index 31f05ba48b191..6eb44a74a3f3f 100644
--- a/apex/jobscheduler/framework/java/android/app/job/JobInfo.java
+++ b/apex/jobscheduler/framework/java/android/app/job/JobInfo.java
@@ -1472,6 +1472,7 @@ public class JobInfo implements Parcelable {
*
Run as soon as possible
* Be exempted from Doze and battery saver restrictions
* Have network access
+ * Less likely to be killed than regular jobs
*
*
* Since these jobs have stronger guarantees than regular jobs, they will be subject to
@@ -1483,10 +1484,11 @@ public class JobInfo implements Parcelable {
* will immediately return {@link JobScheduler#RESULT_FAILURE} if the app does not have
* available quota (and the job will not be successfully scheduled).
*
- * Expedited jobs may only set network constraints. No other constraints are allowed.
+ * Expedited jobs may only set network, storage-not-low, and persistence constraints.
+ * No other constraints are allowed.
*
* Note: Even though expedited jobs are meant to run as soon as possible, they may be
- * deferred if the system is under heavy load or the network constraint is satisfied
+ * deferred if the system is under heavy load or requested constraints are not satisfied.
*
* @see JobInfo#isExpedited()
*/
@@ -1666,9 +1668,10 @@ public class JobInfo implements Parcelable {
if (isPeriodic) {
throw new IllegalArgumentException("An expedited job cannot be periodic");
}
- if (constraintFlags != 0 || (flags & ~FLAG_EXPEDITED) != 0) {
+ if ((constraintFlags & ~CONSTRAINT_FLAG_STORAGE_NOT_LOW) != 0
+ || (flags & ~FLAG_EXPEDITED) != 0) {
throw new IllegalArgumentException(
- "An expedited job can only have network constraints");
+ "An expedited job can only have network and storage-not-low constraints");
}
if (triggerContentUris != null && triggerContentUris.length > 0) {
throw new IllegalArgumentException(
diff --git a/apex/jobscheduler/framework/java/android/app/job/JobParameters.java b/apex/jobscheduler/framework/java/android/app/job/JobParameters.java
index d4c78a0bd1c4e..0d3e0016fca09 100644
--- a/apex/jobscheduler/framework/java/android/app/job/JobParameters.java
+++ b/apex/jobscheduler/framework/java/android/app/job/JobParameters.java
@@ -202,6 +202,8 @@ public class JobParameters implements Parcelable {
* {@code true}. This will return {@code false} if the job that wasn't requested to run as a
* expedited job, or if it was requested to run as an expedited job but the app didn't have
* any remaining expedited job quota at the time of execution.
+ *
+ * @see JobInfo.Builder#setExpedited(boolean)
*/
public boolean isExpeditedJob() {
return mIsExpedited;