# DummyMainThread

# DummyMainThread

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

*** ** * ** ***

Kotlin\|[Java](https://developer.android.com/reference/androidx/media3/test/utils/DummyMainThread "View this page in Java")

<br />

```
@UnstableApi
class DummyMainThread
```

<br />

*** ** * ** ***

Helper class to simulate main/UI thread in tests.

## Summary

|                                                                                                                              ### Nested types                                                                                                                              |
|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `interface `[DummyMainThread.TestRunnable](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/DummyMainThread.TestRunnable) [Runnable](https://developer.android.com/reference/java/lang/Runnable.html)variant which can throw a checked exception. |

|                                    ### Constants                                    |
|-------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `const `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html) | [TIMEOUT_MS](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/DummyMainThread#TIMEOUT_MS())` = 10000` Default timeout value used for[runOnMainThread](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/DummyMainThread#runOnMainThread(java.lang.Runnable)). |

|                                                      ### Public constructors                                                       |
|------------------------------------------------------------------------------------------------------------------------------------|
| [DummyMainThread](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/DummyMainThread#DummyMainThread())`()` |

|                             ### Public functions                              |
|-------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [Unit](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html) | [release](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/DummyMainThread#release())`()`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| [Unit](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html) | [runOnMainThread](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/DummyMainThread#runOnMainThread(java.lang.Runnable))`(runnable: `[Runnable](https://developer.android.com/reference/java/lang/Runnable.html)`!)` Runs the provided[Runnable](https://developer.android.com/reference/java/lang/Runnable.html)on the main thread, blocking until execution completes or until[TIMEOUT_MS](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/DummyMainThread#TIMEOUT_MS())milliseconds have passed.                                                                                                                                                    |
| [Unit](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html) | [runOnMainThread](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/DummyMainThread#runOnMainThread(int,java.lang.Runnable))`(timeoutMs: `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)`, runnable: `[Runnable](https://developer.android.com/reference/java/lang/Runnable.html)`!)` Runs the provided[Runnable](https://developer.android.com/reference/java/lang/Runnable.html)on the main thread, blocking until execution completes or until timeout milliseconds have passed.                                                                                                                                                                 |
| [Unit](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html) | [runTestOnMainThread](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/DummyMainThread#runTestOnMainThread(androidx.media3.test.utils.DummyMainThread.TestRunnable))`(runnable: `[DummyMainThread.TestRunnable](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/DummyMainThread.TestRunnable)`!)` Runs the provided[TestRunnable](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/DummyMainThread.TestRunnable)on the main thread, blocking until execution completes or until[TIMEOUT_MS](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/DummyMainThread#TIMEOUT_MS())milliseconds have passed. |
| [Unit](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html) | [runTestOnMainThread](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/DummyMainThread#runTestOnMainThread(int,androidx.media3.test.utils.DummyMainThread.TestRunnable))`(` ` timeoutMs: `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)`,` ` runnable: `[DummyMainThread.TestRunnable](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/DummyMainThread.TestRunnable)`!` `)` Runs the provided[TestRunnable](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/DummyMainThread.TestRunnable)on the main thread, blocking until execution completes or until timeout milliseconds have passed.    |

## Constants

### TIMEOUT_MS

```
const val TIMEOUT_MS = 10000: Int
```

Default timeout value used for[runOnMainThread](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/DummyMainThread#runOnMainThread(java.lang.Runnable)).  

## Public constructors

### DummyMainThread

```
DummyMainThread()
```  

## Public functions

### release

```
fun release(): Unit
```  

### runOnMainThread

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

Runs the provided[Runnable](https://developer.android.com/reference/java/lang/Runnable.html)on the main thread, blocking until execution completes or until[TIMEOUT_MS](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/DummyMainThread#TIMEOUT_MS())milliseconds have passed.  

|                                         Parameters                                         |
|--------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------|
| `runnable: `[Runnable](https://developer.android.com/reference/java/lang/Runnable.html)`!` | The[Runnable](https://developer.android.com/reference/java/lang/Runnable.html)to run. |

### runOnMainThread

```
fun runOnMainThread(timeoutMs: Int, runnable: Runnable!): Unit
```

Runs the provided[Runnable](https://developer.android.com/reference/java/lang/Runnable.html)on the main thread, blocking until execution completes or until timeout milliseconds have passed.  

|                                         Parameters                                         |
|--------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------|
| `timeoutMs: `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)   | The maximum time to wait in milliseconds.                                             |
| `runnable: `[Runnable](https://developer.android.com/reference/java/lang/Runnable.html)`!` | The[Runnable](https://developer.android.com/reference/java/lang/Runnable.html)to run. |

### runTestOnMainThread

```
fun runTestOnMainThread(runnable: DummyMainThread.TestRunnable!): Unit
```

Runs the provided[TestRunnable](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/DummyMainThread.TestRunnable)on the main thread, blocking until execution completes or until[TIMEOUT_MS](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/DummyMainThread#TIMEOUT_MS())milliseconds have passed.  

|                                                                      Parameters                                                                       |
|-------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------|
| `runnable: `[DummyMainThread.TestRunnable](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/DummyMainThread.TestRunnable)`!` | The[TestRunnable](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/DummyMainThread.TestRunnable)to run. |

### runTestOnMainThread

```
fun runTestOnMainThread(
    timeoutMs: Int,
    runnable: DummyMainThread.TestRunnable!
): Unit
```

Runs the provided[TestRunnable](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/DummyMainThread.TestRunnable)on the main thread, blocking until execution completes or until timeout milliseconds have passed.  

|                                                                      Parameters                                                                       |
|-------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------|
| `timeoutMs: `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)                                                              | The maximum time to wait in milliseconds.                                                                                        |
| `runnable: `[DummyMainThread.TestRunnable](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/DummyMainThread.TestRunnable)`!` | The[TestRunnable](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/DummyMainThread.TestRunnable)to run. |