Added in [API level 36](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels) Summary: [Methods](https://developer.android.com/reference/android/view/SurfaceControl.OnJankDataListenerRegistration#pubmethods) \| [Inherited Methods](https://developer.android.com/reference/android/view/SurfaceControl.OnJankDataListenerRegistration#inhmethods)

# SurfaceControl.OnJankDataListenerRegistration

*** ** * ** ***

` public static class SurfaceControl.OnJankDataListenerRegistration `   
` extends https://developer.android.com/reference/java/lang/Object ` ` `

|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object) ||
| ↳ | android.view.SurfaceControl.OnJankDataListenerRegistration |

<br />

*** ** * ** ***

Handle to a registered `https://developer.android.com/`.

## Summary

| ### Public methods ||
|---|---|
| ` void` | ` https://developer.android.com/reference/android/view/SurfaceControl.OnJankDataListenerRegistration#flush()() ` Request a flush of any pending jank classification data. |
| ` void` | ` https://developer.android.com/reference/android/view/SurfaceControl.OnJankDataListenerRegistration#removeAfter(long)(long afterVsync) ` Schedule the removal of the registered listener after the frame with the provided id. |

### Inherited methods

From class ` https://developer.android.com/reference/java/lang/Object ` ` https://developer.android.com/reference/java/lang/Object` ` https://developer.android.com/reference/java/lang/Object#clone()() `

Creates and returns a copy of this object.
` boolean` ` https://developer.android.com/reference/java/lang/Object#equals(java.lang.Object)(https://developer.android.com/reference/java/lang/Object obj) `

Indicates whether some other object is "equal to" this one.
` void` ` https://developer.android.com/reference/java/lang/Object#finalize()() `

Called by the garbage collector on an object when garbage collection determines that there are no more references to the object.
` final https://developer.android.com/reference/java/lang/Class<?>` ` https://developer.android.com/reference/java/lang/Object#getClass()() `

Returns the runtime class of this `Object`.
` int` ` https://developer.android.com/reference/java/lang/Object#hashCode()() `

Returns a hash code value for the object.
` final void` ` https://developer.android.com/reference/java/lang/Object#notify()() `

Wakes up a single thread that is waiting on this object's monitor.
` final void` ` https://developer.android.com/reference/java/lang/Object#notifyAll()() `

Wakes up all threads that are waiting on this object's monitor.
` https://developer.android.com/reference/java/lang/String` ` https://developer.android.com/reference/java/lang/Object#toString()() `

Returns a string representation of the object.
` final void` ` https://developer.android.com/reference/java/lang/Object#wait(long,%20int)(long timeoutMillis, int nanos) `

Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*, or until a certain amount of real time has elapsed.
` final void` ` https://developer.android.com/reference/java/lang/Object#wait(long)(long timeoutMillis) `

Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*, or until a certain amount of real time has elapsed.
` final void` ` https://developer.android.com/reference/java/lang/Object#wait()() `

Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*.

## Public methods

### flush

Added in [API level 36](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public void flush ()
```

Request a flush of any pending jank classification data.

May cause the registered listener to be invoked inband. Since jank is tracked by the system compositor by surface, flushing the data on one listener, will also cause other listeners on the same surface to receive jank classification data.

<br />

### removeAfter

Added in [API level 36](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public void removeAfter (long afterVsync)
```

Schedule the removal of the registered listener after the frame with the provided id.

Because jank classification is only possible after frames have been displayed, the callbacks are always delayed. To ensure receipt of all jank classification data, an application can schedule the removal to happen no sooner than after the data for the frame with the provided id has been provided.

Use a value \<= 0 for afterVsync to remove the listener immediately, ensuring no future callbacks.

<br />

| Parameters ||
|---|---|
| `afterVsync` | `long`: the id of the Vsync after which to remove the listener <br /> |