# HandlerWrapper

# HandlerWrapper

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

*** ** * ** ***

Kotlin\|[Java](https://developer.android.com/reference/androidx/media3/common/util/HandlerWrapper "View this page in Java")

<br />

```
@UnstableApi
interface HandlerWrapper
```

<br />

*** ** * ** ***

An interface to call through to a[Handler](https://developer.android.com/reference/android/os/Handler.html). Instances must be created by calling[createHandler](https://developer.android.com/reference/kotlin/androidx/media3/common/util/Clock#createHandler(android.os.Looper,android.os.Handler.Callback))on[DEFAULT](https://developer.android.com/reference/kotlin/androidx/media3/common/util/Clock#DEFAULT())for all non-test cases.

## Summary

|                                                                               ### Nested types                                                                               |
|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `interface `[HandlerWrapper.Message](https://developer.android.com/reference/kotlin/androidx/media3/common/util/HandlerWrapper.Message) A message obtained from the handler. |

|                                                      ### Public functions                                                      |
|--------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [Looper](https://developer.android.com/reference/android/os/Looper.html)`!`                                                    | [getLooper](https://developer.android.com/reference/kotlin/androidx/media3/common/util/HandlerWrapper#getLooper())`()` See[getLooper](https://developer.android.com/reference/android/os/Handler.html#getLooper()).                                                                                                                                                                                                                                                                                                                                                                                                                              |
| [Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)                                            | [hasMessages](https://developer.android.com/reference/kotlin/androidx/media3/common/util/HandlerWrapper#hasMessages(int))`(what: `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)`)` See[hasMessages](https://developer.android.com/reference/android/os/Handler.html#hasMessages(int)).                                                                                                                                                                                                                                                                                                                             |
| [HandlerWrapper.Message](https://developer.android.com/reference/kotlin/androidx/media3/common/util/HandlerWrapper.Message)`!` | [obtainMessage](https://developer.android.com/reference/kotlin/androidx/media3/common/util/HandlerWrapper#obtainMessage(int))`(what: `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)`)` See[obtainMessage](https://developer.android.com/reference/android/os/Handler.html#obtainMessage(int)).                                                                                                                                                                                                                                                                                                                     |
| [HandlerWrapper.Message](https://developer.android.com/reference/kotlin/androidx/media3/common/util/HandlerWrapper.Message)`!` | [obtainMessage](https://developer.android.com/reference/kotlin/androidx/media3/common/util/HandlerWrapper#obtainMessage(int,java.lang.Object))`(what: `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)`, obj: `[Any](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html)`?)` See[obtainMessage](https://developer.android.com/reference/android/os/Handler.html#obtainMessage(int, java.lang.Object)).                                                                                                                                                                                             |
| [HandlerWrapper.Message](https://developer.android.com/reference/kotlin/androidx/media3/common/util/HandlerWrapper.Message)`!` | [obtainMessage](https://developer.android.com/reference/kotlin/androidx/media3/common/util/HandlerWrapper#obtainMessage(int,int,int))`(what: `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)`, arg1: `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)`, arg2: `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)`)` See[obtainMessage](https://developer.android.com/reference/android/os/Handler.html#obtainMessage(int, int, int)).                                                                                                                         |
| [HandlerWrapper.Message](https://developer.android.com/reference/kotlin/androidx/media3/common/util/HandlerWrapper.Message)`!` | [obtainMessage](https://developer.android.com/reference/kotlin/androidx/media3/common/util/HandlerWrapper#obtainMessage(int,int,int,java.lang.Object))`(what: `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)`, arg1: `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)`, arg2: `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)`, obj: `[Any](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html)`?)` See[obtainMessage](https://developer.android.com/reference/android/os/Handler.html#obtainMessage(int, int, int, java.lang.Object)). |
| [Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)                                            | [post](https://developer.android.com/reference/kotlin/androidx/media3/common/util/HandlerWrapper#post(java.lang.Runnable))`(runnable: `[Runnable](https://developer.android.com/reference/java/lang/Runnable.html)`!)` See[post](https://developer.android.com/reference/android/os/Handler.html#post(java.lang.Runnable)).                                                                                                                                                                                                                                                                                                                      |
| [Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)                                            | [postAtFrontOfQueue](https://developer.android.com/reference/kotlin/androidx/media3/common/util/HandlerWrapper#postAtFrontOfQueue(java.lang.Runnable))`(runnable: `[Runnable](https://developer.android.com/reference/java/lang/Runnable.html)`!)` See[postAtFrontOfQueue](https://developer.android.com/reference/android/os/Handler.html#postAtFrontOfQueue(java.lang.Runnable)).                                                                                                                                                                                                                                                              |
| [Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)                                            | [postDelayed](https://developer.android.com/reference/kotlin/androidx/media3/common/util/HandlerWrapper#postDelayed(java.lang.Runnable,long))`(runnable: `[Runnable](https://developer.android.com/reference/java/lang/Runnable.html)`!, delayMs: `[Long](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html)`)` See[postDelayed](https://developer.android.com/reference/android/os/Handler.html#postDelayed(java.lang.Runnable, long)).                                                                                                                                                                                     |
| [Unit](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)                                                  | [removeCallbacks](https://developer.android.com/reference/kotlin/androidx/media3/common/util/HandlerWrapper#removeCallbacks(java.lang.Runnable))`(runnable: `[Runnable](https://developer.android.com/reference/java/lang/Runnable.html)`!)` See[removeCallbacks](https://developer.android.com/reference/android/os/Handler.html#removeCallbacks(java.lang.Runnable)).                                                                                                                                                                                                                                                                          |
| [Unit](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)                                                  | [removeCallbacksAndMessages](https://developer.android.com/reference/kotlin/androidx/media3/common/util/HandlerWrapper#removeCallbacksAndMessages(java.lang.Object))`(token: `[Any](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html)`?)` See[removeCallbacksAndMessages](https://developer.android.com/reference/android/os/Handler.html#removeCallbacksAndMessages(java.lang.Object)).                                                                                                                                                                                                                                     |
| [Unit](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)                                                  | [removeMessages](https://developer.android.com/reference/kotlin/androidx/media3/common/util/HandlerWrapper#removeMessages(int))`(what: `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)`)` See[removeMessages](https://developer.android.com/reference/android/os/Handler.html#removeMessages(int)).                                                                                                                                                                                                                                                                                                                 |
| [Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)                                            | [sendEmptyMessage](https://developer.android.com/reference/kotlin/androidx/media3/common/util/HandlerWrapper#sendEmptyMessage(int))`(what: `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)`)` See[sendEmptyMessage](https://developer.android.com/reference/android/os/Handler.html#sendEmptyMessage(int)).                                                                                                                                                                                                                                                                                                         |
| [Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)                                            | [sendEmptyMessageAtTime](https://developer.android.com/reference/kotlin/androidx/media3/common/util/HandlerWrapper#sendEmptyMessageAtTime(int,long))`(what: `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)`, uptimeMs: `[Long](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html)`)` See[sendEmptyMessageAtTime](https://developer.android.com/reference/android/os/Handler.html#sendEmptyMessageAtTime(int, long)).                                                                                                                                                                           |
| [Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)                                            | [sendEmptyMessageDelayed](https://developer.android.com/reference/kotlin/androidx/media3/common/util/HandlerWrapper#sendEmptyMessageDelayed(int,int))`(what: `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)`, delayMs: `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)`)` See[sendEmptyMessageDelayed](https://developer.android.com/reference/android/os/Handler.html#sendEmptyMessageDelayed(int, long)).                                                                                                                                                                           |
| [Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)                                            | [sendMessageAtFrontOfQueue](https://developer.android.com/reference/kotlin/androidx/media3/common/util/HandlerWrapper#sendMessageAtFrontOfQueue(androidx.media3.common.util.HandlerWrapper.Message))`(message: `[HandlerWrapper.Message](https://developer.android.com/reference/kotlin/androidx/media3/common/util/HandlerWrapper.Message)`!)` See[sendMessageAtFrontOfQueue](https://developer.android.com/reference/android/os/Handler.html#sendMessageAtFrontOfQueue(android.os.Message)).                                                                                                                                                   |

## Public functions

### getLooper

```
fun getLooper(): Looper!
```

See[getLooper](https://developer.android.com/reference/android/os/Handler.html#getLooper()).  

### hasMessages

```
fun hasMessages(what: Int): Boolean
```

See[hasMessages](https://developer.android.com/reference/android/os/Handler.html#hasMessages(int)).  

### obtainMessage

```
fun obtainMessage(what: Int): HandlerWrapper.Message!
```

See[obtainMessage](https://developer.android.com/reference/android/os/Handler.html#obtainMessage(int)).  

### obtainMessage

```
fun obtainMessage(what: Int, obj: Any?): HandlerWrapper.Message!
```

See[obtainMessage](https://developer.android.com/reference/android/os/Handler.html#obtainMessage(int, java.lang.Object)).  

### obtainMessage

```
fun obtainMessage(what: Int, arg1: Int, arg2: Int): HandlerWrapper.Message!
```

See[obtainMessage](https://developer.android.com/reference/android/os/Handler.html#obtainMessage(int, int, int)).  

### obtainMessage

```
fun obtainMessage(what: Int, arg1: Int, arg2: Int, obj: Any?): HandlerWrapper.Message!
```

See[obtainMessage](https://developer.android.com/reference/android/os/Handler.html#obtainMessage(int, int, int, java.lang.Object)).  

### post

```
fun post(runnable: Runnable!): Boolean
```

See[post](https://developer.android.com/reference/android/os/Handler.html#post(java.lang.Runnable)).  

### postAtFrontOfQueue

```
fun postAtFrontOfQueue(runnable: Runnable!): Boolean
```

See[postAtFrontOfQueue](https://developer.android.com/reference/android/os/Handler.html#postAtFrontOfQueue(java.lang.Runnable)).  

### postDelayed

```
fun postDelayed(runnable: Runnable!, delayMs: Long): Boolean
```

See[postDelayed](https://developer.android.com/reference/android/os/Handler.html#postDelayed(java.lang.Runnable, long)).  

### removeCallbacks

```
fun removeCallbacks(runnable: Runnable!): Unit
```

See[removeCallbacks](https://developer.android.com/reference/android/os/Handler.html#removeCallbacks(java.lang.Runnable)).  

### removeCallbacksAndMessages

```
fun removeCallbacksAndMessages(token: Any?): Unit
```

See[removeCallbacksAndMessages](https://developer.android.com/reference/android/os/Handler.html#removeCallbacksAndMessages(java.lang.Object)).  

### removeMessages

```
fun removeMessages(what: Int): Unit
```

See[removeMessages](https://developer.android.com/reference/android/os/Handler.html#removeMessages(int)).  

### sendEmptyMessage

```
fun sendEmptyMessage(what: Int): Boolean
```

See[sendEmptyMessage](https://developer.android.com/reference/android/os/Handler.html#sendEmptyMessage(int)).  

### sendEmptyMessageAtTime

```
fun sendEmptyMessageAtTime(what: Int, uptimeMs: Long): Boolean
```

See[sendEmptyMessageAtTime](https://developer.android.com/reference/android/os/Handler.html#sendEmptyMessageAtTime(int, long)).  

### sendEmptyMessageDelayed

```
fun sendEmptyMessageDelayed(what: Int, delayMs: Int): Boolean
```

See[sendEmptyMessageDelayed](https://developer.android.com/reference/android/os/Handler.html#sendEmptyMessageDelayed(int, long)).  

### sendMessageAtFrontOfQueue

```
fun sendMessageAtFrontOfQueue(message: HandlerWrapper.Message!): Boolean
```

See[sendMessageAtFrontOfQueue](https://developer.android.com/reference/android/os/Handler.html#sendMessageAtFrontOfQueue(android.os.Message)).