# Initializer

Artifact: [androidx.startup:startup-runtime](https://developer.android.com/jetpack/androidx/releases/startup) [View Source](https://cs.android.com/search?q=file:androidx/startup/Initializer.java+class:androidx.startup.Initializer) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/startup#1.0.0)

*** ** * ** ***

<br />

```
public interface Initializer<T>
```

<br />

Known direct subclasses [EmojiCompatInitializer](https://developer.android.com/reference/androidx/emoji2/text/EmojiCompatInitializer), [ProcessLifecycleInitializer](https://developer.android.com/reference/androidx/lifecycle/ProcessLifecycleInitializer), [ProfileInstallerInitializer](https://developer.android.com/reference/androidx/profileinstaller/ProfileInstallerInitializer), [StartupTracingInitializer](https://developer.android.com/reference/androidx/tracing/perfetto/StartupTracingInitializer), [WorkManagerInitializer](https://developer.android.com/reference/androidx/work/WorkManagerInitializer)

|---|---|
| `https://developer.android.com/reference/androidx/emoji2/text/EmojiCompatInitializer` | Initializer for configuring EmojiCompat with the system installed downloadable font provider. |
| `https://developer.android.com/reference/androidx/lifecycle/ProcessLifecycleInitializer` | Initializes `https://developer.android.com/reference/androidx/lifecycle/ProcessLifecycleOwner` using `androidx.startup`. |
| `https://developer.android.com/reference/androidx/profileinstaller/ProfileInstallerInitializer` | Startup library initializer that installs an AOT profile several seconds after launch. |
| `https://developer.android.com/reference/androidx/tracing/perfetto/StartupTracingInitializer` | Enables tracing at app startup if configured prior to app starting |
| `https://developer.android.com/reference/androidx/work/WorkManagerInitializer` | Initializes `https://developer.android.com/reference/androidx/work/WorkManager` using `androidx.startup`. |

*** ** * ** ***

Initializes library components during app startup. Discovered and initialized by `https://developer.android.com/reference/androidx/startup/InitializationProvider`.

| Parameters |
|---|---|
| `<T>` | The type of the component being initialized. |

## Summary

| ### Public methods |
|---|---|
| `abstract @https://developer.android.com/reference/androidx/annotation/NonNull T` | `https://developer.android.com/reference/androidx/startup/Initializer#create(android.content.Context)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/android/content/Context.html context)` Initializes a library component within the application `https://developer.android.com/reference/android/content/Context.html`. |
| `abstract @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/java/lang/Class.html<https://developer.android.com/reference/androidx/startup/Initializer<@https://developer.android.com/reference/androidx/annotation/NonNull ?>>>` | `https://developer.android.com/reference/androidx/startup/Initializer#dependencies()()` Gets a list of this initializer's dependencies. |

## Public methods

### create

Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/startup#1.0.0)

```
abstract @NonNull T create(@NonNull Context context)
```

Initializes a library component within the application `https://developer.android.com/reference/android/content/Context.html`.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/android/content/Context.html context` | The application context. |

### dependencies

Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/startup#1.0.0)

```
abstract @NonNull List<Class<Initializer<@NonNull ?>>> dependencies()
```

Gets a list of this initializer's dependencies. Dependencies are initialized before the dependent initializer. For example, if initializer A defines initializer B as a dependency, B is initialized before A.

| Returns |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/java/lang/Class.html<https://developer.android.com/reference/androidx/startup/Initializer<@https://developer.android.com/reference/androidx/annotation/NonNull ?>>>` | A list of initializer dependencies. |