# OperationMonitor

Artifact: [androidx.recyclerview:recyclerview-selection](https://developer.android.com/jetpack/androidx/releases/recyclerview) [View Source](https://cs.android.com/search?q=file:androidx/recyclerview/selection/OperationMonitor.java+class:androidx.recyclerview.selection.OperationMonitor) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/recyclerview#1.0.0)

*** ** * ** ***


```
public final class OperationMonitor
```

<br />

*** ** * ** ***

OperationMonitor provides a mechanism to coordinate application logic with ongoing user selection activities (such as active band selection and active gesture selection).

The host `https://developer.android.com/reference/android/app/Activity.html` or `https://developer.android.com/reference/android/app/Fragment.html` should avoid changing `https://developer.android.com/reference/androidx/recyclerview/widget/RecyclerView.Adapter` data while there are active selection operations, as this can result in a poor user experience.

To know when an operation is active listen to changes using an `https://developer.android.com/reference/androidx/recyclerview/selection/OperationMonitor.OnChangeListener`.

## Summary

| ### Nested types |
|---|
| `public interface https://developer.android.com/reference/androidx/recyclerview/selection/OperationMonitor.OnChangeListener` Listen to changes in operation status. |

| ### Public constructors |
|---|
| `https://developer.android.com/reference/androidx/recyclerview/selection/OperationMonitor#OperationMonitor()()` |

| ### Public methods |
|---|---|
| `void` | `https://developer.android.com/reference/androidx/recyclerview/selection/OperationMonitor#addListener(androidx.recyclerview.selection.OperationMonitor.OnChangeListener)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/recyclerview/selection/OperationMonitor.OnChangeListener listener)` Registers supplied listener to be notified when operation status changes. |
| `synchronized boolean` | `https://developer.android.com/reference/androidx/recyclerview/selection/OperationMonitor#isStarted()()` |
| `void` | `https://developer.android.com/reference/androidx/recyclerview/selection/OperationMonitor#removeListener(androidx.recyclerview.selection.OperationMonitor.OnChangeListener)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/recyclerview/selection/OperationMonitor.OnChangeListener listener)` Unregisters listener for further notifications. |

## Public constructors

### OperationMonitor

Added in 1.0.0

```
public OperationMonitor()
```

## Public methods

### addListener

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

```
public void addListener(@NonNull OperationMonitor.OnChangeListener listener)
```

Registers supplied listener to be notified when operation status changes.

### isStarted

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

```
synchronized public boolean isStarted()
```

| Returns |
|---|---|
| `boolean` | true if there are any running operations. |

### removeListener

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

```
public void removeListener(@NonNull OperationMonitor.OnChangeListener listener)
```

Unregisters listener for further notifications.