# ScheduleEventListener

Artifact: [androidx.work:work-runtime](https://developer.android.com/jetpack/androidx/releases/work) [View Source](https://cs.android.com/search?q=file:androidx/work/ScheduleEventListener.kt+class:androidx.work.ScheduleEventListener) Added in [2.12.0](https://developer.android.com/jetpack/androidx/releases/work#2.12.0)

*** ** * ** ***


```
@ExperimentalEventsApi
public interface ScheduleEventListener
```

<br />

Known direct subclasses [WorkMetricsInfoRepository](https://developer.android.com/reference/androidx/work/analytics/WorkMetricsInfoRepository)

|---|---|
| `https://developer.android.com/reference/androidx/work/analytics/WorkMetricsInfoRepository` | Repository class that calculates and stores metrics info and analytics about workers. |

*** ** * ** ***

Listener interface that is called for events related to a worker's scheduling.

## Summary

| ### Public methods |
|---|---|
| `default void` | `https://developer.android.com/reference/androidx/work/ScheduleEventListener#onCancelled(androidx.work.WorkInfo)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/work/WorkInfo workInfo)` Called when a work request is canceled from the app e.g. `https://developer.android.com/reference/androidx/work/WorkManager#cancelWorkById(java.util.UUID)`. |
| `default void` | `https://developer.android.com/reference/androidx/work/ScheduleEventListener#onEnqueued(androidx.work.WorkInfo)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/work/WorkInfo workInfo)` Called when a work request is enqueued from the app e.g. `https://developer.android.com/reference/androidx/work/WorkManager#enqueue(androidx.work.WorkRequest)`. |
| `default void` | `https://developer.android.com/reference/androidx/work/ScheduleEventListener#onPrerequisiteFailed(androidx.work.WorkInfo)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/work/WorkInfo workInfo)` Called when a work request fails because a prerequisite work fails. |
| `default void` | `https://developer.android.com/reference/androidx/work/ScheduleEventListener#onUnblocked(androidx.work.WorkInfo)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/work/WorkInfo workInfo)` Called when a work request is no longer waiting on any of its prerequisite work. |
| `default void` | `https://developer.android.com/reference/androidx/work/ScheduleEventListener#onUpdated(androidx.work.WorkInfo,androidx.work.WorkInfo)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/work/WorkInfo oldWorkInfo, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/work/WorkInfo updatedWorkInfo)` Called when a work request is updated from the app e.g. `https://developer.android.com/reference/androidx/work/WorkManager#updateWork(androidx.work.WorkRequest)`. |

## Public methods

### onCancelled

Added in [2.12.0](https://developer.android.com/jetpack/androidx/releases/work#2.12.0)

```
default void onCancelled(@NonNull WorkInfo workInfo)
```

Called when a work request is canceled from the app e.g. `https://developer.android.com/reference/androidx/work/WorkManager#cancelWorkById(java.util.UUID)`.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/work/WorkInfo workInfo` | Snapshot of the work info |

### onEnqueued

Added in [2.12.0](https://developer.android.com/jetpack/androidx/releases/work#2.12.0)

```
default void onEnqueued(@NonNull WorkInfo workInfo)
```

Called when a work request is enqueued from the app e.g. `https://developer.android.com/reference/androidx/work/WorkManager#enqueue(androidx.work.WorkRequest)`.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/work/WorkInfo workInfo` | Snapshot of the work info |

### onPrerequisiteFailed

Added in [2.12.0](https://developer.android.com/jetpack/androidx/releases/work#2.12.0)

```
default void onPrerequisiteFailed(@NonNull WorkInfo workInfo)
```

Called when a work request fails because a prerequisite work fails.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/work/WorkInfo workInfo` | Snapshot of the work info |

### onUnblocked

Added in [2.12.0](https://developer.android.com/jetpack/androidx/releases/work#2.12.0)

```
default void onUnblocked(@NonNull WorkInfo workInfo)
```

Called when a work request is no longer waiting on any of its prerequisite work. If the work has no prerequisite work, this is called immediately after `https://developer.android.com/reference/androidx/work/ScheduleEventListener#onEnqueued(androidx.work.WorkInfo)`.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/work/WorkInfo workInfo` | Snapshot of the work info |

### onUpdated

Added in [2.12.0](https://developer.android.com/jetpack/androidx/releases/work#2.12.0)

```
default void onUpdated(@NonNull WorkInfo oldWorkInfo, @NonNull WorkInfo updatedWorkInfo)
```

Called when a work request is updated from the app e.g. `https://developer.android.com/reference/androidx/work/WorkManager#updateWork(androidx.work.WorkRequest)`.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/work/WorkInfo oldWorkInfo` | Snapshot of the work info before the update |
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/work/WorkInfo updatedWorkInfo` | Snapshot of the work info after the update |