# Renderer.WakeupListener

Artifact: [androidx.media3:media3-exoplayer](https://developer.android.com/jetpack/androidx/releases/media3) [View Source](https://cs.android.com/search?q=file:androidx/media3/exoplayer/Renderer.java+class:androidx.media3.exoplayer.Renderer.WakeupListener)

*** ** * ** ***


```
public interface Renderer.WakeupListener
```

<br />

*** ** * ** ***

Some renderers can signal when `https://developer.android.com/reference/androidx/media3/exoplayer/Renderer#render(long,long)` should be called.

That allows the player to sleep until the next wakeup, instead of calling `https://developer.android.com/reference/androidx/media3/exoplayer/Renderer#render(long,long)` in a tight loop. The aim of this interrupt based scheduling is to save power.

## Summary

| ### Public methods |
|---|---|
| `abstract void` | `https://developer.android.com/reference/androidx/media3/exoplayer/Renderer.WakeupListener#onSleep()()` The renderer no longer needs to render until the next wakeup. |
| `abstract void` | `https://developer.android.com/reference/androidx/media3/exoplayer/Renderer.WakeupListener#onWakeup()()` The renderer needs to render some frames. |

## Public methods

### onSleep

```
abstract void onSleep()
```

The renderer no longer needs to render until the next wakeup.

Must be called from the thread ExoPlayer invokes the renderer from.

### onWakeup

```
abstract void onWakeup()
```

The renderer needs to render some frames. The client should call `https://developer.android.com/reference/androidx/media3/exoplayer/Renderer#render(long,long)` at its earliest convenience.

Can be called from any thread.