# MainThread

Artifact: [androidx.annotation:annotation](https://developer.android.com/jetpack/androidx/releases/annotation) [View Source](https://cs.android.com/search?q=file:androidx/annotation/MainThread.kt+class:androidx.annotation.MainThread) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/annotation#1.0.0)

*** ** * ** ***


```
@MustBeDocumented
@Retention(value = AnnotationRetention.BINARY)
@Target(allowedTargets = [AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY_GETTER, AnnotationTarget.PROPERTY_SETTER, AnnotationTarget.CONSTRUCTOR, AnnotationTarget.ANNOTATION_CLASS, AnnotationTarget.CLASS, AnnotationTarget.VALUE_PARAMETER])
public annotation MainThread
```

<br />

*** ** * ** ***

Denotes that the annotated method should only be called on the main thread. If the annotated element is a class, then all methods in the class should be called on the main thread.

Example:

```
@MainThread
public void deliverResult(D data) { ... }
```

**Note:** Ordinarily, an app's main thread is also the UI thread. However, under special circumstances, an app's main thread might not be its UI thread; for more information, see [Thread annotations](https://developer.android.com/studio/write/annotations#thread-annotations).

| See also |
|---|---|
| `https://developer.android.com/reference/androidx/annotation/UiThread` |   |