Operation
public interface Operation
An object that provides information about the execution of an asynchronous command being performed by WorkManager. Operations are generally tied to enqueue or cancel commands; when you call one of those commands, they occur asynchronously. You can observe or await these commands by using the returned Operation.
Summary
Nested types |
|---|
public abstract class Operation.StateThe lifecycle state of an |
public final class Operation.State.FAILURE extends Operation.StateThis represents an |
public final class Operation.State.IN_PROGRESS extends Operation.StateThis represents an |
public final class Operation.State.SUCCESS extends Operation.StateThis represents an |
Public methods |
|
|---|---|
abstract @NonNull ListenableFuture<Operation.State.SUCCESS> |
Gets a |
abstract @NonNull LiveData<Operation.State> |
getState() |
Extension functions |
|
|---|---|
default final @NonNull Operation.State.SUCCESS |
OperationKt.await(@NonNull Operation receiver)Awaits an |
Public methods
getResult
abstract @NonNull ListenableFuture<Operation.State.SUCCESS> getResult()
Gets a ListenableFuture for the terminal state of the Operation. This will only resolve with a State.SUCCESS. The State.FAILURE state will come through as a Throwable on the ListenableFuture. State.IN_PROGRESS will never be reported as it's not a terminal state.
Call get to block until the Operation reaches a terminal state.
| Returns | |
|---|---|
@NonNull ListenableFuture<Operation.State.SUCCESS> |
A |
Extension functions
OperationKt.await
default final @NonNull Operation.State.SUCCESS OperationKt.await(@NonNull Operation receiver)
Awaits an Operation without blocking a thread.
This method returns the terminal state of the [Operation] which is [Operation.State.SUCCESS] or throws a [Throwable] that represents why the [Operation] failed.