# 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)

*** ** * ** ***


```
@UnstableApi
public final class DummyMainThread
```

<br />

*** ** * ** ***

Helper class to simulate main/UI thread in tests.

## Summary

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

| ### Constants |
|---|---|
| `static final int` | `https://developer.android.com/reference/androidx/media3/test/utils/DummyMainThread#TIMEOUT_MS() = 10000` Default timeout value used for `https://developer.android.com/reference/androidx/media3/test/utils/DummyMainThread#runOnMainThread(java.lang.Runnable)`. |

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

| ### Public methods |
|---|---|
| `void` | `https://developer.android.com/reference/androidx/media3/test/utils/DummyMainThread#release()()` |
| `void` | `https://developer.android.com/reference/androidx/media3/test/utils/DummyMainThread#runOnMainThread(java.lang.Runnable)(https://developer.android.com/reference/java/lang/Runnable.html runnable)` Runs the provided `https://developer.android.com/reference/java/lang/Runnable.html` on the main thread, blocking until execution completes or until `https://developer.android.com/reference/androidx/media3/test/utils/DummyMainThread#TIMEOUT_MS()` milliseconds have passed. |
| `void` | `https://developer.android.com/reference/androidx/media3/test/utils/DummyMainThread#runOnMainThread(int,java.lang.Runnable)(int timeoutMs, https://developer.android.com/reference/java/lang/Runnable.html runnable)` Runs the provided `https://developer.android.com/reference/java/lang/Runnable.html` on the main thread, blocking until execution completes or until timeout milliseconds have passed. |
| `void` | `https://developer.android.com/reference/androidx/media3/test/utils/DummyMainThread#runTestOnMainThread(androidx.media3.test.utils.DummyMainThread.TestRunnable)(https://developer.android.com/reference/androidx/media3/test/utils/DummyMainThread.TestRunnable runnable)` Runs the provided `https://developer.android.com/reference/androidx/media3/test/utils/DummyMainThread.TestRunnable` on the main thread, blocking until execution completes or until `https://developer.android.com/reference/androidx/media3/test/utils/DummyMainThread#TIMEOUT_MS()` milliseconds have passed. |
| `void` | `https://developer.android.com/reference/androidx/media3/test/utils/DummyMainThread#runTestOnMainThread(int,androidx.media3.test.utils.DummyMainThread.TestRunnable)( int timeoutMs, https://developer.android.com/reference/androidx/media3/test/utils/DummyMainThread.TestRunnable runnable )` Runs the provided `https://developer.android.com/reference/androidx/media3/test/utils/DummyMainThread.TestRunnable` on the main thread, blocking until execution completes or until timeout milliseconds have passed. |

## Constants

### TIMEOUT_MS

```
public static final int TIMEOUT_MS = 10000
```

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

## Public constructors

### DummyMainThread

```
public DummyMainThread()
```

## Public methods

### release

```
public void release()
```

### runOnMainThread

```
public void runOnMainThread(Runnable runnable)
```

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

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

### runOnMainThread

```
public void runOnMainThread(int timeoutMs, Runnable runnable)
```

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

| Parameters |
|---|---|
| `int timeoutMs` | The maximum time to wait in milliseconds. |
| `https://developer.android.com/reference/java/lang/Runnable.html runnable` | The `https://developer.android.com/reference/java/lang/Runnable.html` to run. |

### runTestOnMainThread

```
public void runTestOnMainThread(DummyMainThread.TestRunnable runnable)
```

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

| Parameters |
|---|---|
| `https://developer.android.com/reference/androidx/media3/test/utils/DummyMainThread.TestRunnable runnable` | The `https://developer.android.com/reference/androidx/media3/test/utils/DummyMainThread.TestRunnable` to run. |

### runTestOnMainThread

```
public void runTestOnMainThread(
    int timeoutMs,
    DummyMainThread.TestRunnable runnable
)
```

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

| Parameters |
|---|---|
| `int timeoutMs` | The maximum time to wait in milliseconds. |
| `https://developer.android.com/reference/androidx/media3/test/utils/DummyMainThread.TestRunnable runnable` | The `https://developer.android.com/reference/androidx/media3/test/utils/DummyMainThread.TestRunnable` to run. |