@UnstableApi
public final class WorkManagerScheduler implements Scheduler


A Scheduler that uses WorkManager.

Summary

Nested types

public final class WorkManagerScheduler.SchedulerWorker extends Worker

A Worker that starts the target service if the requirements are met.

Public constructors

WorkManagerScheduler(Context context, String workName)

Public methods

boolean

Cancels anything that was previously scheduled, or else does nothing.

Requirements

Checks whether this Scheduler supports the provided Requirements.

boolean
schedule(
    Requirements requirements,
    String servicePackage,
    String serviceAction
)

Schedules a service to be started in the foreground when some Requirements are met.

Public constructors

WorkManagerScheduler

public WorkManagerScheduler(Context context, String workName)
Parameters
Context context

A context.

String workName

A name for work scheduled by this instance. If the same name was used by a previous instance, anything scheduled by the previous instance will be canceled by this instance if schedule or cancel are called.

Public methods

cancel

public boolean cancel()

Cancels anything that was previously scheduled, or else does nothing.

Returns
boolean

Whether cancellation was successful.

getSupportedRequirements

public Requirements getSupportedRequirements(Requirements requirements)

Checks whether this Scheduler supports the provided Requirements. If all of the requirements are supported then the same Requirements instance is returned. If not then a new instance is returned containing the subset of the requirements that are supported.

Parameters
Requirements requirements

The requirements to check.

Returns
Requirements

The supported requirements.

schedule

public boolean schedule(
    Requirements requirements,
    String servicePackage,
    String serviceAction
)

Schedules a service to be started in the foreground when some Requirements are met. Anything that was previously scheduled will be canceled.

The service to be started must be declared in the manifest of servicePackage with an intent filter containing serviceAction. Note that when started with serviceAction, the service must call startForeground to make itself a foreground service, as documented by startForegroundService.

Parameters
Requirements requirements

The requirements.

String servicePackage

The package name.

String serviceAction

The action with which the service will be started.

Returns
boolean

Whether scheduling was successful.