# AppInitializer

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

*** ** * ** ***

<br />

```
public final class AppInitializer
```

<br />

*** ** * ** ***

An `https://developer.android.com/reference/androidx/startup/AppInitializer` can be used to initialize all discovered `ComponentInitializer`s. The discovery mechanism is via `<meta-data>` entries in the merged `AndroidManifest.xml`.

## Summary

| ### Public methods |
|---|---|
| `static @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/startup/AppInitializer` | `https://developer.android.com/reference/androidx/startup/AppInitializer#getInstance(android.content.Context)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/android/content/Context.html context)` |
| `@https://developer.android.com/reference/androidx/annotation/NonNull T` | `<T> https://developer.android.com/reference/androidx/startup/AppInitializer#initializeComponent(java.lang.Class<? extends androidx.startup.Initializer<T>>)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/Class.html<https://developer.android.com/reference/androidx/startup/Initializer<T>> component)` Initializes a `https://developer.android.com/reference/androidx/startup/Initializer` class type. |
| `boolean` | `https://developer.android.com/reference/androidx/startup/AppInitializer#isEagerlyInitialized(java.lang.Class<? extends androidx.startup.Initializer<?>>)(@https://developer.android.com/reference/androidx/annotation/NonNull 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 ?>> component)` Returns `true` if the `https://developer.android.com/reference/androidx/startup/Initializer` was eagerly initialized.. |

## Public methods

### getInstance

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

```
public static @NonNull AppInitializer getInstance(@NonNull Context context)
```

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

| Returns |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/startup/AppInitializer` | The instance of `https://developer.android.com/reference/androidx/startup/AppInitializer` after initialization. |

### initializeComponent

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

```
public @NonNull T <T> initializeComponent(@NonNull Class<Initializer<T>> component)
```

Initializes a `https://developer.android.com/reference/androidx/startup/Initializer` class type.

| Parameters |
|---|---|
| `<T>` | The instance type being initialized |
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/Class.html<https://developer.android.com/reference/androidx/startup/Initializer<T>> component` | The `https://developer.android.com/reference/java/lang/Class.html` of `https://developer.android.com/reference/androidx/startup/Initializer` to initialize. |

| Returns |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull T` | The initialized instance |

### isEagerlyInitialized

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

```
public boolean isEagerlyInitialized(@NonNull Class<Initializer<@NonNull ?>> component)
```

Returns `true` if the `https://developer.android.com/reference/androidx/startup/Initializer` was eagerly initialized..

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull 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 ?>> component` | The `https://developer.android.com/reference/androidx/startup/Initializer` class to check |

| Returns |
|---|---|
| `boolean` | `true` if the `https://developer.android.com/reference/androidx/startup/Initializer` was eagerly initialized. |