ZenService class abstract

A long-lived service singleton.

Extends ZenController and therefore inherits:

  • Automatic disposal of tracked Rx objects via obs
  • Worker and effect tracking
  • onInit, onReady, onClose, and app lifecycle hooks

The only behavioural difference from ZenController is that Zen.put registers a ZenService as permanent by default, meaning it survives Zen.reset cleanup unless explicitly deleted.

Inheritance
Available extensions

Constructors

ZenService()

Properties

activeWatcherCount → int
Get count of active watchers (useful for debugging)
no setterinherited
childControllerCount → int
Get count of tracked child controllers for debugging
no setterinherited
childControllerStats → Map<String, int>
Get stats about child controllers
no setterinherited
createdAt → DateTime
no setterinherited
hashCode → int
The hash code for this object.
no setterinherited
isDisposed → bool
no setterinherited
isInitialized → bool
no setterinherited
isReady → bool
no setterinherited
reactiveObjectCount → int
Get count of tracked reactive objects for debugging
no setterinherited
reactiveStats → Map<String, int>
Get stats about reactive objects
no setterinherited
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited

Methods

addDisposer(void disposer()) → void
Add a disposer function that will be called when the controller is disposed
inherited
addUpdateListener(String updateId, VoidCallback listener) → void
Register a listener for a specific update ID
inherited
condition<T>(ValueNotifier<T> obs, bool condition(T), void callback(T)) → ZenWorker
inherited
createEffect<T>({required String name}) → ZenEffect<T>
Create an effect that will be auto-disposed with this controller
inherited
createWorkerGroup() → ZenWorkerGroup
Create a managed worker group
inherited
createWorkers(List<ZenWorker Function()> creators) → List<ZenWorker>

Available on ZenController, provided by the ZenControllerWorkerExtension extension

Create multiple workers in one call
debounce<T>(ValueNotifier<T> obs, void callback(T), Duration duration) → ZenWorker
inherited
didChangeAppLifecycleState(AppLifecycleState state) → void
Override from WidgetsBindingObserver to handle app lifecycle
inherited
dispose() → void
Dispose the controller and clean up ALL resources - PREVENTS MEMORY LEAKS
inherited
disposeWorkers(List<ZenWorker> workers) → void

Available on ZenController, provided by the ZenControllerWorkerExtension extension

Dispose specific workers
ever<T>(ValueNotifier<T> obs, void callback(T)) → ZenWorker
Type-safe convenience worker methods
inherited
getResourceStats() → Map<String, dynamic>
Get comprehensive resource usage statistics
inherited
getWorkerStats() → Map<String, dynamic>
Get worker statistics for debugging/monitoring
inherited
interval<T>(ValueNotifier<T> obs, void callback(T), Duration duration) → ZenWorker
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
obs<T>(T initialValue) → Rx<T>
Create and auto-track a reactive variable - PREVENTS MEMORY LEAKS
inherited
obsList<T>([List<T>? initialValue]) → RxList<T>
Create and auto-track a reactive list - PREVENTS MEMORY LEAKS
inherited
obsMap<K, V>([Map<K, V>? initialValue]) → RxMap<K, V>
Create and auto-track a reactive map - PREVENTS MEMORY LEAKS
inherited
obsSet<T>([Set<T>? initialValue]) → RxSet<T>
Create and auto-track a reactive set - PREVENTS MEMORY LEAKS
inherited
once<T>(ValueNotifier<T> obs, void callback(T)) → ZenWorker
inherited
onClose() → void
User-defined cleanup hook - called before internal disposal
inherited
onDetached() → void
Called when the app is detached
inherited
onHidden() → void
Called when the app is hidden
inherited
onInactive() → void
Called when the app is inactive
inherited
onInit() → void
Internal method called by child controllers to auto-register with parent This is called automatically during child controller construction if a parent exists
inherited
onPause() → void
Called when the app is paused (goes to background)
inherited
onReady() → void
inherited
onResume() → void
Called when the app is resumed (comes back to foreground)
inherited
pauseAllWorkers() → void
Pause all workers managed by this controller
inherited
pauseSpecificWorkers(List<ZenWorker> workers) → void

Available on ZenController, provided by the ZenControllerWorkerExtension extension

Pause specific workers
removeUpdateListener(String updateId, VoidCallback listener) → void
Remove a listener for a specific update ID
inherited
resumeAllWorkers() → void
Resume all workers managed by this controller
inherited
resumeSpecificWorkers(List<ZenWorker> workers) → void

Available on ZenController, provided by the ZenControllerWorkerExtension extension

Resume specific workers
throttle<T>(ValueNotifier<T> obs, void callback(T), Duration duration) → ZenWorker
inherited
toString() → String
A string representation of this object.
inherited
trackController<T extends ZenController>(T controller) → T
Track a child controller (like ZenQuery, ZenStreamQuery) for automatic disposal
inherited
trackReactive(Rx reactive) → void
Manually track a reactive object (for external reactive objects)
inherited
update([List<String>? updateIds]) → void
Optimized update method that can notify specific listeners or all listeners
inherited
watch<T>(ValueNotifier<T> observable, void callback(T), {WorkerType type = WorkerType.ever, Duration? duration, bool condition(T)?}) → ZenWorker
Create workers that auto-dispose with controller
inherited

Operators

operator ==(Object other) → bool
The equality operator.
inherited