# Window.OnFrameMetricsAvailableListener

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

# OnFrameMetricsAvailableListener

*** ** * ** ***

Kotlin \|[Java](https://developer.android.com/reference/android/view/Window.OnFrameMetricsAvailableListener "View this page in Java")  

```
interface OnFrameMetricsAvailableListener
```

|------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [android.view.Window.OnFrameMetricsAvailableListener](https://developer.android.com/reference/kotlin/android/view/Window.OnFrameMetricsAvailableListener#) |

Callback for clients that want frame timing information for each frame rendered by the Window.

## Summary

|                                                                                                                                                                                                                                                                                                                                                Public methods                                                                                                                                                                                                                                                                                                                                                ||
|---------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| abstract [Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) | [onFrameMetricsAvailable](https://developer.android.com/reference/kotlin/android/view/Window.OnFrameMetricsAvailableListener#onFrameMetricsAvailable(android.view.Window,%20android.view.FrameMetrics,%20kotlin.Int))`(`window:` `[Window](https://developer.android.com/reference/kotlin/android/view/Window)!`, `frameMetrics:` `[FrameMetrics](https://developer.android.com/reference/kotlin/android/view/FrameMetrics)!`, `dropCountSinceLastInvocation:` `[Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`)` Called when information is available for the previously rendered frame. |

## Public methods

### onFrameMetricsAvailable

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

```
abstract fun onFrameMetricsAvailable(
    window: Window!, 
    frameMetrics: FrameMetrics!, 
    dropCountSinceLastInvocation: Int
): Unit
```

Called when information is available for the previously rendered frame. Reports can be dropped if this callback takes too long to execute, as the report producer cannot wait for the consumer to complete. It is highly recommended that clients copy the passed in FrameMetrics via [FrameMetrics.FrameMetrics(FrameMetrics)](https://developer.android.com/reference/kotlin/android/view/FrameMetrics#FrameMetrics(android.view.FrameMetrics)) within this method and defer additional computation or storage to another thread to avoid unnecessarily dropping reports.

|                                                                                                                            Parameters                                                                                                                            ||
|--------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `window`                       | [Window](https://developer.android.com/reference/kotlin/android/view/Window)!: The [Window](https://developer.android.com/reference/kotlin/android/view/Window) on which the frame was displayed.                                |
| `frameMetrics`                 | [FrameMetrics](https://developer.android.com/reference/kotlin/android/view/FrameMetrics)!: the available metrics. This object is reused on every call and thus **this reference is not valid outside the scope of this method**. |
| `dropCountSinceLastInvocation` | [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html): the number of reports dropped since the last time this callback was invoked.                                                                         |