public final class WorkRequest

  1. Object
  2. WorkRequest

Describes a unit of constraint-aware background work to be scheduled with BackgroundWork#schedule(WorkRequest). The constraints map to Android WorkManager constraints and iOS BGTaskScheduler request options.

Input data is a string-keyed string map so that it can survive serialization into the platform scheduler and a subsequent cold launch of the app process.

Usage

WorkRequest req = WorkRequest.builder("sync", SyncWorker.class)
        .setRequiresNetwork(true)
        .setRequiresCharging(true)
        .setPeriodic(6 * 60 * 60 * 1000L)
        .putInputData("account", "primary")
        .build();
BackgroundWork.schedule(req);

Nested types

class WorkRequest.BuilderBuilder for WorkRequest.

Methods

public String getId()Returns the unique work id.
public String getWorkerClass()Returns the fully qualified class name of the BackgroundWorker that performs the work.
public boolean isRequiresNetwork()Returns true if the work requires any network connection.
public boolean isRequiresUnmeteredNetwork()Returns true if the work requires an unmetered (for example Wi-Fi) network.
public boolean isRequiresCharging()Returns true if the work requires the device to be charging.
public boolean isRequiresIdle()Returns true if the work requires the device to be idle (Android only).
public boolean isRequiresBatteryNotLow()Returns true if the work requires the battery to not be low (Android only).
public boolean isPeriodic()Returns true if the work repeats periodically.
public long getMinIntervalMillis()Returns the minimum interval between periodic executions in milliseconds, or 0 for one-shot work.
public long getInitialDelayMillis()Returns the initial delay before the first execution in milliseconds.
public Map<String, String> getInputData()Returns an immutable copy of the input data.
public static WorkRequest.Builder builder(String id, Class<? extends BackgroundWorker> worker)Creates a new work request builder.

Inherited methods

Method details

getId

public String getId()
Returns the unique work id.

Returns

the work id

getWorkerClass

public String getWorkerClass()
Returns the fully qualified class name of the BackgroundWorker that performs the work.

Returns

the worker class name

isRequiresNetwork

public boolean isRequiresNetwork()
Returns true if the work requires any network connection.

Returns

true if a network is required

isRequiresUnmeteredNetwork

public boolean isRequiresUnmeteredNetwork()
Returns true if the work requires an unmetered (for example Wi-Fi) network.

Returns

true if an unmetered network is required

isRequiresCharging

public boolean isRequiresCharging()
Returns true if the work requires the device to be charging.

Returns

true if charging is required

isRequiresIdle

public boolean isRequiresIdle()
Returns true if the work requires the device to be idle (Android only).

Returns

true if device idle is required

isRequiresBatteryNotLow

public boolean isRequiresBatteryNotLow()
Returns true if the work requires the battery to not be low (Android only).

Returns

true if battery-not-low is required

isPeriodic

public boolean isPeriodic()
Returns true if the work repeats periodically.

Returns

true if periodic

getMinIntervalMillis

public long getMinIntervalMillis()
Returns the minimum interval between periodic executions in milliseconds, or 0 for one-shot work.

Returns

the minimum periodic interval in milliseconds

getInitialDelayMillis

public long getInitialDelayMillis()
Returns the initial delay before the first execution in milliseconds.

Returns

the initial delay in milliseconds

getInputData

public Map<String, String> getInputData()
Returns an immutable copy of the input data.

Returns

the input data, never null

builder

public static WorkRequest.Builder builder(String id, Class<? extends BackgroundWorker> worker)
Creates a new work request builder.

Parameters

id String
a stable unique id for the work; scheduling another request with the same id replaces it
worker Class<? extends BackgroundWorker>
the worker class that performs the work; it must have a public no-arg constructor

Returns

a new builder