JobWorkItem

public final class JobWorkItem
extends Object implements Parcelable

java.lang.Object
   ↳ android.app.job.JobWorkItem


A unit of work that can be enqueued for a job using JobScheduler.enqueue. See JobParameters.dequeueWork for more details.

Note: Prior to Android version Build.VERSION_CODES.UPSIDE_DOWN_CAKE, JobWorkItems could not be persisted. Apps were not allowed to enqueue JobWorkItems with persisted jobs and the system would throw an IllegalArgumentException if they attempted to do so. Starting with Build.VERSION_CODES.UPSIDE_DOWN_CAKE, JobWorkItems can be persisted alongside the hosting job. However, Intents cannot be persisted. Set a PersistableBundle using Builder#setExtras(PersistableBundle) for any information that needs to be persisted.

Summary

Nested classes

class JobWorkItem.Builder

Builder class for constructing JobWorkItem objects. 

Inherited constants

Fields

public static final Creator<JobWorkItem> CREATOR

Public constructors

JobWorkItem(Intent intent)

Create a new piece of work, which can be submitted to JobScheduler.enqueue.

JobWorkItem(Intent intent, long downloadBytes, long uploadBytes)

Create a new piece of work, which can be submitted to JobScheduler.enqueue.

JobWorkItem(Intent intent, long downloadBytes, long uploadBytes, long minimumChunkBytes)

Create a new piece of work, which can be submitted to JobScheduler.enqueue.

Public methods

int describeContents()

Describe the kinds of special objects contained in this Parcelable instance's marshaled representation.

int getDeliveryCount()

Return the count of the number of times this work item has been delivered to the job.

long getEstimatedNetworkDownloadBytes()

Return the estimated size of download traffic that will be performed by this job, in bytes.

long getEstimatedNetworkUploadBytes()

Return the estimated size of upload traffic that will be performed by this job work item, in bytes.

PersistableBundle getExtras()

Return the extras associated with this work.

Intent getIntent()

Return the Intent associated with this work.

long getMinimumNetworkChunkBytes()

Return the smallest piece of data that cannot be easily paused and resumed, in bytes.

String toString()

Returns a string representation of the object.

void writeToParcel(Parcel out, int flags)

Flatten this object in to a Parcel.

Inherited methods

Fields

CREATOR

Added in API level 26
public static final Creator<JobWorkItem> CREATOR

Public constructors

JobWorkItem

Added in API level 26
public JobWorkItem (Intent intent)

Create a new piece of work, which can be submitted to JobScheduler.enqueue.

Intents cannot be used for persisted JobWorkItems. Use Builder#setExtras(PersistableBundle) instead for persisted JobWorkItems.

Parameters
intent Intent: The general Intent describing this work.

JobWorkItem

Added in API level 26
public JobWorkItem (Intent intent, 
                long downloadBytes, 
                long uploadBytes)

Create a new piece of work, which can be submitted to JobScheduler.enqueue.

See JobInfo.Builder#setEstimatedNetworkBytes(long, long) for details about how to estimate network traffic.

Intents cannot be used for persisted JobWorkItems. Use Builder#setExtras(PersistableBundle) instead for persisted JobWorkItems.

Parameters
intent Intent: The general Intent describing this work.

downloadBytes long: The estimated size of network traffic that will be downloaded by this job work item, in bytes. Value is a non-negative number of bytes.

uploadBytes long: The estimated size of network traffic that will be uploaded by this job work item, in bytes. Value is a non-negative number of bytes.

JobWorkItem

Added in API level 26
public JobWorkItem (Intent intent, 
                long downloadBytes, 
                long uploadBytes, 
                long minimumChunkBytes)

Create a new piece of work, which can be submitted to JobScheduler.enqueue.

See JobInfo.Builder#setEstimatedNetworkBytes(long, long) for details about how to estimate network traffic.

Intents cannot be used for persisted JobWorkItems. Use Builder#setExtras(PersistableBundle) instead for persisted JobWorkItems.

Parameters
intent Intent: The general Intent describing this work. This value may be null.

downloadBytes long: The estimated size of network traffic that will be downloaded by this job work item, in bytes. Value is a non-negative number of bytes.

uploadBytes long: The estimated size of network traffic that will be uploaded by this job work item, in bytes. Value is a non-negative number of bytes.

minimumChunkBytes long: The smallest piece of data that cannot be easily paused and resumed, in bytes. Value is a non-negative number of bytes.

Public methods

describeContents

Added in API level 26
public int describeContents ()

Describe the kinds of special objects contained in this Parcelable instance's marshaled representation. For example, if the object will include a file descriptor in the output of writeToParcel(android.os.Parcel, int), the return value of this method must include the CONTENTS_FILE_DESCRIPTOR bit.

Returns
int a bitmask indicating the set of special object types marshaled by this Parcelable object instance. Value is either 0 or CONTENTS_FILE_DESCRIPTOR

getDeliveryCount

Added in API level 26
public int getDeliveryCount ()

Return the count of the number of times this work item has been delivered to the job. The value will be > 1 if it has been redelivered because the job was stopped or crashed while it had previously been delivered but before the job had called JobParameters.completeWork for it.

Returns
int

getEstimatedNetworkDownloadBytes

Added in API level 28
public long getEstimatedNetworkDownloadBytes ()

Return the estimated size of download traffic that will be performed by this job, in bytes.
Value is a non-negative number of bytes.

Returns
long Estimated size of download traffic, or JobInfo#NETWORK_BYTES_UNKNOWN when unknown. Value is a non-negative number of bytes.

getEstimatedNetworkUploadBytes

Added in API level 28
public long getEstimatedNetworkUploadBytes ()

Return the estimated size of upload traffic that will be performed by this job work item, in bytes.
Value is a non-negative number of bytes.

Returns
long Estimated size of upload traffic, or JobInfo#NETWORK_BYTES_UNKNOWN when unknown. Value is a non-negative number of bytes.

getExtras

Added in API level 34
public PersistableBundle getExtras ()

Return the extras associated with this work.

Returns
PersistableBundle This value cannot be null.

getIntent

Added in API level 26
public Intent getIntent ()

Return the Intent associated with this work.

Returns
Intent

getMinimumNetworkChunkBytes

Added in API level 33
public long getMinimumNetworkChunkBytes ()

Return the smallest piece of data that cannot be easily paused and resumed, in bytes.
Value is a non-negative number of bytes.

Returns
long Smallest piece of data that cannot be easily paused and resumed, or JobInfo#NETWORK_BYTES_UNKNOWN when unknown. Value is a non-negative number of bytes.

toString

Added in API level 26
public String toString ()

Returns a string representation of the object.

Returns
String a string representation of the object.

writeToParcel

Added in API level 26
public void writeToParcel (Parcel out, 
                int flags)

Flatten this object in to a Parcel.

Parameters
out Parcel: The Parcel in which the object should be written. This value cannot be null.

flags int: Additional flags about how the object should be written. May be 0 or Parcelable.PARCELABLE_WRITE_RETURN_VALUE. Value is either 0 or a combination of Parcelable.PARCELABLE_WRITE_RETURN_VALUE, and android.os.Parcelable.PARCELABLE_ELIDE_DUPLICATES