Google is committed to advancing racial equity for Black communities. See how.

RemoteWorkManager

abstract class RemoteWorkManager
kotlin.Any
   ↳ androidx.work.multiprocess.RemoteWorkManager

A subset of androidx.work.WorkManager APIs that are available for apps that use multiple processes.

Summary

Public methods
RemoteWorkContinuation
beginUniqueWork(@NonNull uniqueWorkName: String, @NonNull existingWorkPolicy: ExistingWorkPolicy, @NonNull work: OneTimeWorkRequest)

This method allows you to begin unique chains of work for situations where you only want one chain with a given name to be active at a time.

abstract RemoteWorkContinuation
beginUniqueWork(@NonNull uniqueWorkName: String, @NonNull existingWorkPolicy: ExistingWorkPolicy, @NonNull work: MutableList<OneTimeWorkRequest!>)

This method allows you to begin unique chains of work for situations where you only want one chain with a given name to be active at a time.

RemoteWorkContinuation
beginWith(@NonNull work: OneTimeWorkRequest)

Begins a chain with one or more OneTimeWorkRequests, which can be enqueued together in the future using RemoteWorkContinuation#enqueue().

abstract RemoteWorkContinuation

Begins a chain with one or more OneTimeWorkRequests, which can be enqueued together in the future using RemoteWorkContinuation#enqueue().

abstract ListenableFuture<Void!>

Cancels all unfinished work.

abstract ListenableFuture<Void!>
cancelAllWorkByTag(@NonNull tag: String)

Cancels all unfinished work with the given tag.

abstract ListenableFuture<Void!>
cancelUniqueWork(@NonNull uniqueWorkName: String)

Cancels all unfinished work in the work chain with the given name.

abstract ListenableFuture<Void!>
cancelWorkById(@NonNull id: UUID)

Cancels work with the given id if it isn't finished.

abstract ListenableFuture<Void!>
enqueue(@NonNull request: WorkRequest)

Enqueues one item for background processing.

abstract ListenableFuture<Void!>
enqueue(@NonNull requests: MutableList<WorkRequest!>)

Enqueues one or more items for background processing.

abstract ListenableFuture<Void!>
enqueueUniquePeriodicWork(@NonNull uniqueWorkName: String, @NonNull existingPeriodicWorkPolicy: ExistingPeriodicWorkPolicy, @NonNull periodicWork: PeriodicWorkRequest)

This method allows you to enqueue a uniquely-named PeriodicWorkRequest, where only one PeriodicWorkRequest of a particular name can be active at a time.

ListenableFuture<Void!>
enqueueUniqueWork(@NonNull uniqueWorkName: String, @NonNull existingWorkPolicy: ExistingWorkPolicy, @NonNull work: OneTimeWorkRequest)

This method allows you to enqueue work requests to a uniquely-named RemoteWorkContinuation, where only one continuation of a particular name can be active at a time.

abstract ListenableFuture<Void!>
enqueueUniqueWork(@NonNull uniqueWorkName: String, @NonNull existingWorkPolicy: ExistingWorkPolicy, @NonNull work: MutableList<OneTimeWorkRequest!>)

This method allows you to enqueue work requests to a uniquely-named RemoteWorkContinuation, where only one continuation of a particular name can be active at a time.

open static RemoteWorkManager
getInstance(@NonNull context: Context)

Gets the instance of RemoteWorkManager which provides a subset of WorkManager APIs that are safe to use for apps that use multiple processes.

abstract ListenableFuture<MutableList<WorkInfo!>!>
getWorkInfos(@NonNull workQuery: WorkQuery)

Gets the ListenableFuture of the List of WorkInfo for all work referenced by the WorkQuery specification.

Public methods

beginUniqueWork

@NonNull fun beginUniqueWork(
    @NonNull uniqueWorkName: String,
    @NonNull existingWorkPolicy: ExistingWorkPolicy,
    @NonNull work: OneTimeWorkRequest
): RemoteWorkContinuation

This method allows you to begin unique chains of work for situations where you only want one chain with a given name to be active at a time. For example, you may only want one sync operation to be active. If there is one pending, you can choose to let it run or replace it with your new work.

The uniqueWorkName uniquely identifies this set of work.

If this method determines that new work should be enqueued and run, all records of previous work with uniqueWorkName will be pruned. If this method determines that new work should NOT be run, then the entire chain will be considered a no-op.

If any work in the chain fails or is cancelled, all of its dependent work inherits that state and will never run. This is particularly important if you are using APPEND as your ExistingWorkPolicy.

Parameters
uniqueWorkName String: A unique name which for this chain of work
existingWorkPolicy ExistingWorkPolicy: An ExistingWorkPolicy
work OneTimeWorkRequest: The OneTimeWorkRequest to enqueue. REPLACE ensures that if there is pending work labelled with uniqueWorkName, it will be cancelled and the new work will run. KEEP will run the new sequence of work only if there is no pending work labelled with uniqueWorkName. APPEND will create a new sequence of work if there is no existing work with uniqueWorkName; otherwise, work will be added as a child of all leaf nodes labelled with uniqueWorkName.
Return
RemoteWorkContinuation A RemoteWorkContinuation that allows further chaining

beginUniqueWork

@NonNull abstract fun beginUniqueWork(
    @NonNull uniqueWorkName: String,
    @NonNull existingWorkPolicy: ExistingWorkPolicy,
    @NonNull work: MutableList<OneTimeWorkRequest!>
): RemoteWorkContinuation

This method allows you to begin unique chains of work for situations where you only want one chain with a given name to be active at a time. For example, you may only want one sync operation to be active. If there is one pending, you can choose to let it run or replace it with your new work.

The uniqueWorkName uniquely identifies this set of work.

If this method determines that new work should be enqueued and run, all records of previous work with uniqueWorkName will be pruned. If this method determines that new work should NOT be run, then the entire chain will be considered a no-op.

If any work in the chain fails or is cancelled, all of its dependent work inherits that state and will never run. This is particularly important if you are using APPEND as your ExistingWorkPolicy.

Parameters
uniqueWorkName String: A unique name which for this chain of work
existingWorkPolicy ExistingWorkPolicy: An ExistingWorkPolicy; see below for more information
work MutableList<OneTimeWorkRequest!>: One or more OneTimeWorkRequest to enqueue. REPLACE ensures that if there is pending work labelled with uniqueWorkName, it will be cancelled and the new work will run. KEEP will run the new sequence of work only if there is no pending work labelled with uniqueWorkName. APPEND will create a new sequence of work if there is no existing work with uniqueWorkName; otherwise, work will be added as a child of all leaf nodes labelled with uniqueWorkName.
Return
RemoteWorkContinuation A RemoteWorkContinuation that allows further chaining

beginWith

@NonNull fun beginWith(@NonNull work: OneTimeWorkRequest): RemoteWorkContinuation

Begins a chain with one or more OneTimeWorkRequests, which can be enqueued together in the future using RemoteWorkContinuation#enqueue().

If any work in the chain fails or is cancelled, all of its dependent work inherits that state and will never run.

Parameters
work OneTimeWorkRequest: One or more OneTimeWorkRequest to start a chain of work
Return
RemoteWorkContinuation A RemoteWorkContinuation that allows for further chaining of dependent OneTimeWorkRequest

beginWith

@NonNull abstract fun beginWith(@NonNull work: MutableList<OneTimeWorkRequest!>): RemoteWorkContinuation

Begins a chain with one or more OneTimeWorkRequests, which can be enqueued together in the future using RemoteWorkContinuation#enqueue().

If any work in the chain fails or is cancelled, all of its dependent work inherits that state and will never run.

Parameters
work MutableList<OneTimeWorkRequest!>: One or more OneTimeWorkRequest to start a chain of work
Return
RemoteWorkContinuation A RemoteWorkContinuation that allows for further chaining of dependent OneTimeWorkRequest

cancelAllWork

@NonNull abstract fun cancelAllWork(): ListenableFuture<Void!>

Cancels all unfinished work. Use this method with extreme caution! By