ComposeNodeLifecycleCallback

Interface

Common
public interface ComposeNodeLifecycleCallback

Observes lifecycle of the node emitted with ReusableComposeNode or ComposeNode inside ReusableContentHost and ReusableContent.

The ReusableContentHost introduces the concept of reusing (or recycling) nodes, as well as deactivating parts of composition, while keeping the nodes around to reuse common structures in the next iteration. In this state, RememberObserver is not sufficient to track lifetime of data associated with reused node, as deactivated or reused parts of composition is disposed.

These callbacks track intermediate states of the node in reusable groups for managing data contained inside reusable nodes or associated with them (e.g. subcomposition).

Important: the runtime only supports node implementation of this interface.

Functions

public fun onReuse()

Invoked when the node was reused in the composition. Consumers might use this callback to reset data associated with the previous content, as it is no longer valid.

public fun onDeactivate()

Invoked when the group containing the node was deactivated. This happens when the content of ReusableContentHost is deactivated.

The node will not be reused in this recompose cycle, but might be reused or released in the future. Consumers might use this callback to release expensive resources or stop continuous process that was dependent on the node being used in composition.

If the node is reused, onReuse will be called again to prepare the node for reuse. Similarly, onRelease will indicate that deactivated node will never be reused again.

public fun onRelease()

Invoked when the node exits the composition entirely and won't be reused again. All intermediate data related to the node can be safely disposed.