WeakChangeNotifier class mixin
A class that can be extended or mixed in that provides a change notification API using VoidCallback for notifications. It is a modified version of Flutter's ChangeNotifier that uses WeakReference for its listeners.
This prevents the notifier from holding a strong reference to its listeners,
a common source of memory leaks if removeListener
is not called. Listeners
are automatically marked for removal when they are garbage collected.
It is O(1) for adding listeners and O(N) for removing listeners and dispatching notifications (where N is the number of listeners).
- Implemented types
Constructors
Properties
- hashCode → int
-
The hash code for this object.
no setterinherited
- hasListeners → bool
-
Whether any listeners are currently registered.
no setter
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
Methods
-
addListener(
VoidCallback listener) → void -
Implements the Listenable interface.
override
-
addSingleExecutionListener(
VoidCallback listener) → void - Registers a listener that will be called only once when the object notifies its listeners. After the listener is called, it is automatically removed.
-
addStrongRefListener(
{required VoidCallback strongRefListener}) → void - Register a closure to be called when the object notifies its listeners.
-
dispose(
) → void - Discards any resources used by the object. After this is called, the object is not in a usable state and should be discarded.
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
notifyListeners(
) → void - Call all the registered listeners.
-
removeListener(
VoidCallback listener) → void -
Remove a previously registered closure from the list of closures that are
notified when the object changes.
override
-
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited
Static Properties
- printGarbageCollectionStatus ↔ bool
-
getter/setter pair