Go to reference
LifecycleOwner
interface LifecycleOwner
An object that implements LifecycleOwner can easily listen for Field changes, by calling listen.
In order to work, it's necessary to implement attachToLifecycle and detachFromLifecycle.
To simplify implementing this interface, you can extend MapLifecycleOwner instead
This class allows to listen Fields like this:
class FieldLabel: Label(), LifecycleOwner {
...
val textColor = mutableFieldOf(Color.RED)
init {
listen(textColor){ c ->
super.setTextColor(c)
}
}
}
Properties
canSafelyUseStrongListeners |
Whether or not listeners will be registered strongly to this LifecycleOwner.
Defaults to open val canSafelyUseStrongListeners: Boolean |
startListenersAutomatically |
Whether or not listeners will start automatically when calling listen. open val startListenersAutomatically: Boolean |
Functions
attachToLifecycle |
Attaches the given ListenerHolder to the lifecycle of this object Detaches and returns the previous ListenerHolder attached under key abstract fun attachToLifecycle(key: Any, listenerHolder: ListenerHolder<*>): ListenerHolder<*>? |
deferred |
Returns a LifecycleOwner on which listeners are called on the given executor. All the listeners are attached on the previous LifecycleOwner open fun deferred(executor: Executor): LifecycleOwner |
detachFromLifecycle |
Detaches the given ListenerHolder abstract fun detachFromLifecycle(key: Any, listenerHolder: ListenerHolder<*>): ListenerHolder<*>?
Detaches the ListenerHolder attached under key abstract fun detachFromLifecycle(key: Any): ListenerHolder<*>? |
isAttached |
Returns true if the given listenerHolder is attached with the given key abstract fun isAttached(key: Any, listenerHolder: ListenerHolder<*>): Boolean |
listen |
Starts listening to the given Field. open fun <T> listen(field: Field<T>, callback: (T) -> Unit): ListenerHolder<T> open fun <T> listen(field: Field<T>, callback: Consumer<T>): ListenerHolder<T> open fun <T> listen(field: Field<T>, callImmediately: Boolean, callback: (T) -> Unit): ListenerHolder<T> open fun <T> listen(field: Field<T>, callImmediately: Boolean, callback: Consumer<T>): ListenerHolder<T> open fun <T> listen(field: Field<T>, key: Any, callback: (T) -> Unit): ListenerHolder<T> open fun <T> listen(field: Field<T>, key: Any, callback: Consumer<T>): ListenerHolder<T> open fun <T> listen(field: Field<T>, key: Any, callImmediately: Boolean, callback: (T) -> Unit): ListenerHolder<T> open fun <T> listen(field: Field<T>, key: Any, callImmediately: Boolean, callback: Consumer<T>): ListenerHolder<T> |
Companion Object Properties
globalLifecycle |
Returns a global LifecycleOwner. Listener are never unregistered automatically. val globalLifecycle: LifecycleOwner |
Companion Object Functions
lifecycle |
Calls the specified function f with a new LifecycleOwner as its receiver and returns its result. fun <T> lifecycle(f: LifecycleOwner.() -> T): T fun lifecycle(f: Consumer<LifecycleOwner>): Unit |
Inheritors
MapLifecycleOwner |
An implementation of LifecycleOwner that uses a Map to hold the ListenerHolder interface MapLifecycleOwner : LifecycleOwner |