# LifecycleRegistry

added in[version 1.1.0](https://developer.android.com/topic/libraries/support-library/revisions)  
belongs to Maven artifact android.arch.lifecycle:runtime:1.1.1  
Summary:[Ctors](https://developer.android.com/reference/android/arch/lifecycle/LifecycleRegistry#pubctors)\|[Methods](https://developer.android.com/reference/android/arch/lifecycle/LifecycleRegistry#pubmethods)\|[Inherited Methods](https://developer.android.com/reference/android/arch/lifecycle/LifecycleRegistry#inhmethods)  

# LifecycleRegistry

| The`android.arch`Architecture Components packages are no longer maintained. They have been superseded by the corresponding[androidx.\*](https://developer.android.com/jetpack/androidx/migrate)packages. See[androidx.lifecycle.LifecycleRegistry](https://developer.android.com/reference/androidx/lifecycle/LifecycleRegistry)instead.

`
public


class
LifecycleRegistry
`  
`


``

extends `[Lifecycle](https://developer.android.com/reference/android/arch/lifecycle/Lifecycle)`


``


`

|---|---|------------------------------------------|
| java.lang.Object                               |||
| ↳ | [android.arch.lifecycle.Lifecycle](https://developer.android.com/reference/android/arch/lifecycle/Lifecycle) ||
|   | ↳ | android.arch.lifecycle.LifecycleRegistry |

<br />

*** ** * ** ***

An implementation of[Lifecycle](https://developer.android.com/reference/android/arch/lifecycle/Lifecycle)that can handle multiple observers.

It is used by Fragments and Support Library Activities. You can also directly use it if you have a custom LifecycleOwner.

## Summary

|                                                                                                                                                           ### Public constructors                                                                                                                                                           ||
|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---|
| ` `[LifecycleRegistry](https://developer.android.com/reference/android/arch/lifecycle/LifecycleRegistry#LifecycleRegistry(android.arch.lifecycle.LifecycleOwner))`(`[LifecycleOwner](https://developer.android.com/reference/android/arch/lifecycle/LifecycleOwner)` provider) ` Creates a new LifecycleRegistry for the given provider. |

|                                                                                                                                                                                                                            ### Public methods                                                                                                                                                                                                                             ||
|------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| ` void`                                                                                              | ` `[addObserver](https://developer.android.com/reference/android/arch/lifecycle/LifecycleRegistry#addObserver(android.arch.lifecycle.LifecycleObserver))`(`[LifecycleObserver](https://developer.android.com/reference/android/arch/lifecycle/LifecycleObserver)` observer) ` Adds a LifecycleObserver that will be notified when the LifecycleOwner changes state. |
| ` `[Lifecycle.State](https://developer.android.com/reference/android/arch/lifecycle/Lifecycle.State) | ` `[getCurrentState](https://developer.android.com/reference/android/arch/lifecycle/LifecycleRegistry#getCurrentState())`() ` Returns the current state of the Lifecycle.                                                                                                                                                                                           |
| ` int`                                                                                               | ` `[getObserverCount](https://developer.android.com/reference/android/arch/lifecycle/LifecycleRegistry#getObserverCount())`() ` The number of observers.                                                                                                                                                                                                            |
| ` void`                                                                                              | ` `[handleLifecycleEvent](https://developer.android.com/reference/android/arch/lifecycle/LifecycleRegistry#handleLifecycleEvent(android.arch.lifecycle.Lifecycle.Event))`(`[Lifecycle.Event](https://developer.android.com/reference/android/arch/lifecycle/Lifecycle.Event)` event) ` Sets the current state and notifies the observers.                           |
| ` void`                                                                                              | ` `[markState](https://developer.android.com/reference/android/arch/lifecycle/LifecycleRegistry#markState(android.arch.lifecycle.Lifecycle.State))`(`[Lifecycle.State](https://developer.android.com/reference/android/arch/lifecycle/Lifecycle.State)` state) ` Moves the Lifecycle to the given state and dispatches necessary events to the observers.           |
| ` void`                                                                                              | ` `[removeObserver](https://developer.android.com/reference/android/arch/lifecycle/LifecycleRegistry#removeObserver(android.arch.lifecycle.LifecycleObserver))`(`[LifecycleObserver](https://developer.android.com/reference/android/arch/lifecycle/LifecycleObserver)` observer) ` Removes the given observer from the observers list.                             |

| ### Inherited methods |
|-----------------------|---|
| From class` `[android.arch.lifecycle.Lifecycle](https://developer.android.com/reference/android/arch/lifecycle/Lifecycle)` ` |---------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | ` abstract void`                                                                                              | ` `[addObserver](https://developer.android.com/reference/android/arch/lifecycle/Lifecycle#addObserver(android.arch.lifecycle.LifecycleObserver))`(`[LifecycleObserver](https://developer.android.com/reference/android/arch/lifecycle/LifecycleObserver)` observer) ` Adds a LifecycleObserver that will be notified when the LifecycleOwner changes state. | | ` abstract `[Lifecycle.State](https://developer.android.com/reference/android/arch/lifecycle/Lifecycle.State) | ` `[getCurrentState](https://developer.android.com/reference/android/arch/lifecycle/Lifecycle#getCurrentState())`() ` Returns the current state of the Lifecycle.                                                                                                                                                                                           | | ` abstract void`                                                                                              | ` `[removeObserver](https://developer.android.com/reference/android/arch/lifecycle/Lifecycle#removeObserver(android.arch.lifecycle.LifecycleObserver))`(`[LifecycleObserver](https://developer.android.com/reference/android/arch/lifecycle/LifecycleObserver)` observer) ` Removes the given observer from the observers list.                             | ||
| From class` java.lang.Object ` |-------------------|-------------------------------| | ` Object`         | ` clone() `                   | | ` boolean`        | ` equals(Object arg0) `       | | ` void`           | ` finalize() `                | | ` final Class<?>` | ` getClass() `                | | ` int`            | ` hashCode() `                | | ` final void`     | ` notify() `                  | | ` final void`     | ` notifyAll() `               | | ` String`         | ` toString() `                | | ` final void`     | ` wait(long arg0, int arg1) ` | | ` final void`     | ` wait(long arg0) `           | | ` final void`     | ` wait() `                    | ||

## Public constructors

### LifecycleRegistry

added in[version 1.1.0](https://developer.android.com/topic/libraries/support-library/revisions)  

```
LifecycleRegistry (LifecycleOwner provider)
```

Creates a new LifecycleRegistry for the given provider.

You should usually create this inside your LifecycleOwner class's constructor and hold onto the same instance.

<br />

|                          Parameters                           ||
|------------|---------------------------------------------------|
| `provider` | `LifecycleOwner`: The owner LifecycleOwner <br /> |

## Public methods

### addObserver

added in[version 1.1.0](https://developer.android.com/topic/libraries/support-library/revisions)  

```
void addObserver (LifecycleObserver observer)
```

Adds a LifecycleObserver that will be notified when the LifecycleOwner changes state.

The given observer will be brought to the current state of the LifecycleOwner. For example, if the LifecycleOwner is in[STARTED](https://developer.android.com/reference/android/arch/lifecycle/Lifecycle.State#STARTED)state, the given observer will receive[ON_CREATE](https://developer.android.com/reference/android/arch/lifecycle/Lifecycle.Event#ON_CREATE),[ON_START](https://developer.android.com/reference/android/arch/lifecycle/Lifecycle.Event#ON_START)events.

<br />

|                           Parameters                            ||
|------------|-----------------------------------------------------|
| `observer` | `LifecycleObserver`: The observer to notify. <br /> |

### getCurrentState

added in[version 1.1.0](https://developer.android.com/topic/libraries/support-library/revisions)  

```
Lifecycle.State getCurrentState ()
```

Returns the current state of the Lifecycle.

<br />

|                                                                    Returns                                                                    ||
|---------------------------------------------------------------------------------------------------|--------------------------------------------|
| [Lifecycle.State](https://developer.android.com/reference/android/arch/lifecycle/Lifecycle.State) | The current state of the Lifecycle. <br /> |

### getObserverCount

added in[version 1.1.0](https://developer.android.com/topic/libraries/support-library/revisions)  

```
int getObserverCount ()
```

The number of observers.

<br />

|                Returns                 ||
|-------|---------------------------------|
| `int` | The number of observers. <br /> |

### handleLifecycleEvent

added in[version 1.1.0](https://developer.android.com/topic/libraries/support-library/revisions)  

```
void handleLifecycleEvent (Lifecycle.Event event)
```

Sets the current state and notifies the observers.

Note that if the`currentState`is the same state as the last call to this method, calling this method has no effect.

<br />

|                           Parameters                           ||
|---------|-------------------------------------------------------|
| `event` | `Lifecycle.Event`: The event that was received <br /> |

### markState

added in[version 1.1.0](https://developer.android.com/topic/libraries/support-library/revisions)  

```
void markState (Lifecycle.State state)
```

Moves the Lifecycle to the given state and dispatches necessary events to the observers.

<br />

|                  Parameters                  ||
|---------|-------------------------------------|
| `state` | `Lifecycle.State`: new state <br /> |

### removeObserver

added in[version 1.1.0](https://developer.android.com/topic/libraries/support-library/revisions)  

```
void removeObserver (LifecycleObserver observer)
```

Removes the given observer from the observers list.

If this method is called while a state change is being dispatched,

- If the given observer has not yet received that event, it will not receive it.
- If the given observer has more than 1 method that observes the currently dispatched event and at least one of them received the event, all of them will receive the event and the removal will happen afterwards.

<br />

<br />

|                             Parameters                              ||
|------------|---------------------------------------------------------|
| `observer` | `LifecycleObserver`: The observer to be removed. <br /> |

-

  ## Annotations

  - [OnLifecycleEvent](https://developer.android.com/reference/android/arch/lifecycle/OnLifecycleEvent)
-

  ## Interfaces

  - [DefaultLifecycleObserver](https://developer.android.com/reference/android/arch/lifecycle/DefaultLifecycleObserver)
  - [LifecycleObserver](https://developer.android.com/reference/android/arch/lifecycle/LifecycleObserver)
  - [LifecycleOwner](https://developer.android.com/reference/android/arch/lifecycle/LifecycleOwner)
  - [LifecycleRegistryOwner](https://developer.android.com/reference/android/arch/lifecycle/LifecycleRegistryOwner)
  - [Observer](https://developer.android.com/reference/android/arch/lifecycle/Observer)
  - [ViewModelProvider.Factory](https://developer.android.com/reference/android/arch/lifecycle/ViewModelProvider.Factory)
  - [ViewModelStoreOwner](https://developer.android.com/reference/android/arch/lifecycle/ViewModelStoreOwner)
-

  ## Classes

  - [AndroidViewModel](https://developer.android.com/reference/android/arch/lifecycle/AndroidViewModel)
  - [Lifecycle](https://developer.android.com/reference/android/arch/lifecycle/Lifecycle)
  - [LifecycleRegistry](https://developer.android.com/reference/android/arch/lifecycle/LifecycleRegistry)
  - [LifecycleService](https://developer.android.com/reference/android/arch/lifecycle/LifecycleService)
  - [LiveData](https://developer.android.com/reference/android/arch/lifecycle/LiveData)
  - [LiveDataReactiveStreams](https://developer.android.com/reference/android/arch/lifecycle/LiveDataReactiveStreams)
  - [MediatorLiveData](https://developer.android.com/reference/android/arch/lifecycle/MediatorLiveData)
  - [MutableLiveData](https://developer.android.com/reference/android/arch/lifecycle/MutableLiveData)
  - [ProcessLifecycleOwner](https://developer.android.com/reference/android/arch/lifecycle/ProcessLifecycleOwner)
  - [ServiceLifecycleDispatcher](https://developer.android.com/reference/android/arch/lifecycle/ServiceLifecycleDispatcher)
  - [Transformations](https://developer.android.com/reference/android/arch/lifecycle/Transformations)
  - [ViewModel](https://developer.android.com/reference/android/arch/lifecycle/ViewModel)
  - [ViewModelProvider](https://developer.android.com/reference/android/arch/lifecycle/ViewModelProvider)
  - [ViewModelProvider.AndroidViewModelFactory](https://developer.android.com/reference/android/arch/lifecycle/ViewModelProvider.AndroidViewModelFactory)
  - [ViewModelProvider.NewInstanceFactory](https://developer.android.com/reference/android/arch/lifecycle/ViewModelProvider.NewInstanceFactory)
  - [ViewModelProviders](https://developer.android.com/reference/android/arch/lifecycle/ViewModelProviders)
  - [ViewModelProviders.DefaultFactory](https://developer.android.com/reference/android/arch/lifecycle/ViewModelProviders.DefaultFactory)
  - [ViewModelStore](https://developer.android.com/reference/android/arch/lifecycle/ViewModelStore)
  - [ViewModelStores](https://developer.android.com/reference/android/arch/lifecycle/ViewModelStores)
-

  ## Enums

  - [Lifecycle.Event](https://developer.android.com/reference/android/arch/lifecycle/Lifecycle.Event)
  - [Lifecycle.State](https://developer.android.com/reference/android/arch/lifecycle/Lifecycle.State)