LifecycleRegistry
public
class
LifecycleRegistry
extends Lifecycle
java.lang.Object | ||
↳ | androidx.lifecycle.Lifecycle | |
↳ | androidx.lifecycle.LifecycleRegistry |
An implementation of 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(LifecycleOwner provider)
Creates a new LifecycleRegistry for the given provider. |
Public methods | |
---|---|
void
|
addObserver(LifecycleObserver observer)
Adds a LifecycleObserver that will be notified when the LifecycleOwner changes state. |
static
LifecycleRegistry
|
createUnsafe(LifecycleOwner owner)
Creates a new LifecycleRegistry for the given provider, that doesn't check that its methods are called on the threads other than main. |
Lifecycle.State
|
getCurrentState()
Returns the current state of the Lifecycle. |
int
|
getObserverCount()
The number of observers. |
void
|
handleLifecycleEvent(Lifecycle.Event event)
Sets the current state and notifies the observers. |
void
|
markState(Lifecycle.State state)
This method is deprecated.
Use |
void
|
removeObserver(LifecycleObserver observer)
Removes the given observer from the observers list. |
void
|
setCurrentState(Lifecycle.State state)
Moves the Lifecycle to the given state and dispatches necessary events to the observers. |
Inherited methods | |
---|---|
Public constructors
LifecycleRegistry
public 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.
Parameters | |
---|---|
provider |
LifecycleOwner : The owner LifecycleOwner
|
Public methods
addObserver
public 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 Lifecycle.State.STARTED
state, the given observer
will receive Lifecycle.Event.ON_CREATE
, Lifecycle.Event.ON_START
events.
Parameters | |
---|---|
observer |
LifecycleObserver : The observer to notify.
|
createUnsafe
public static LifecycleRegistry createUnsafe (LifecycleOwner owner)
Creates a new LifecycleRegistry for the given provider, that doesn't check that its methods are called on the threads other than main.
LifecycleRegistry is not synchronized: if multiple threads access this LifecycleRegistry
, it must be synchronized externally.
Another possible use-case for this method is JVM testing, when main thread is not present.
Parameters | |
---|---|
owner |
LifecycleOwner |
Returns | |
---|---|
LifecycleRegistry |
getCurrentState
public Lifecycle.State getCurrentState ()
Returns the current state of the Lifecycle.
Returns | |
---|---|
Lifecycle.State |
The current state of the Lifecycle. |
getObserverCount
public int getObserverCount ()
The number of observers.
Returns | |
---|---|
int |
The number of observers. |
handleLifecycleEvent
public 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.
Parameters | |
---|---|
event |
Lifecycle.Event : The event that was received
|
markState
public void markState (Lifecycle.State state)
This method is deprecated.
Use setCurrentState(State)
.
Moves the Lifecycle to the given state and dispatches necessary events to the observers.
Parameters | |
---|---|
state |
Lifecycle.State : new state |
removeObserver
public 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.
Parameters | |
---|---|
observer |
LifecycleObserver : The observer to be removed.
|
setCurrentState
public void setCurrentState (Lifecycle.State state)
Moves the Lifecycle to the given state and dispatches necessary events to the observers.
Parameters | |
---|---|
state |
Lifecycle.State : new state
|