ServicesBinding mixin

Listens for platform messages and directs them to the defaultBinaryMessenger.

The ServicesBinding also registers a LicenseEntryCollector that exposes the licenses found in the LICENSE file stored at the root of the asset bundle, and implements the ext.flutter.evict service extension (see evict).

Superclass Constraints
Mixin Applications


accessibilityFocus ValueNotifier<int?>
Listenable that notifies when the accessibility focus on the system have changed.
keyboard HardwareKeyboard
The global singleton instance of HardwareKeyboard, which can be used to query keyboard states.
no setter
keyEventManager KeyEventManager
The global singleton instance of KeyEventManager, which is used internally to dispatch key messages.
no setter
defaultBinaryMessenger BinaryMessenger
The default instance of BinaryMessenger.
no setter
channelBuffers ChannelBuffers
The low level buffering and dispatch mechanism for messages sent by plugins on the engine side to their corresponding plugin code on the framework side.
no setter
restorationManager RestorationManager
The RestorationManager synchronizes the restoration data between engine and framework.
no setter
window SingletonFlutterWindow
Deprecated. Will be removed in a future version of Flutter.
no setterinherited
platformDispatcher PlatformDispatcher
The ui.PlatformDispatcher to which this binding is bound.
no setterinherited
locked bool
Whether lockEvents is currently locking events.
no setterinherited
hashCode int
The hash code for this object.
no setterinherited
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
schedulingStrategy SchedulingStrategy
The strategy to use when deciding whether to run a task or not.
getter/setter pairinherited
lifecycleState AppLifecycleState?
Whether the application is visible, and if so, whether it is currently interactive.
no setterinherited
transientCallbackCount int
The current number of transient frame callbacks scheduled.
no setterinherited
endOfFrame Future<void>
Returns a Future that completes after the frame completes.
no setterinherited
hasScheduledFrame bool
Whether this scheduler has requested that handleBeginFrame be called soon.
no setterinherited
schedulerPhase SchedulerPhase
The phase that the scheduler is currently operating under.
no setterinherited
framesEnabled bool
Whether frames are currently being scheduled when scheduleFrame is called.
no setterinherited
currentFrameTimeStamp Duration
The time stamp for the frame currently being processed.
no setterinherited
currentSystemFrameTimeStamp Duration
The raw time stamp as provided by the engine to dart:ui.PlatformDispatcher.onBeginFrame for the frame currently being processed.
no setterinherited


addPersistentFrameCallback(FrameCallback callback) → void
Adds a persistent frame callback.
addPostFrameCallback(FrameCallback callback, {String debugLabel = 'callback'}) → void
Schedule a callback for the end of this frame.
addTimingsCallback(TimingsCallback callback) → void
Add a TimingsCallback that receives FrameTiming sent from the engine.
cancelFrameCallbackWithId(int id) → void
Cancels the transient frame callback with the given id.
createBinaryMessenger() BinaryMessenger
Creates a default BinaryMessenger instance that can be used for sending platform messages.
createRestorationManager() RestorationManager
Creates the RestorationManager instance available via restorationManager.
debugAssertNoPendingPerformanceModeRequests(String reason) bool
Asserts that there are no pending performance mode requests in debug mode.
debugAssertNoTimeDilation(String reason) bool
Asserts that there is no artificial time dilation in debug mode.
debugAssertNoTransientCallbacks(String reason) bool
Asserts that there are no registered transient callbacks; if there are, prints their locations and throws an exception.
debugCheckZone(String entryPoint) bool
Checks that the current Zone is the same as that which was used to initialize the binding.
debugGetRequestedPerformanceMode() DartPerformanceMode?
Returns the current DartPerformanceMode requested or null if no requests have been made.
ensureFrameCallbacksRegistered() → void
Ensures callbacks for PlatformDispatcher.onBeginFrame and PlatformDispatcher.onDrawFrame are registered.
ensureVisualUpdate() → void
Schedules a new frame using scheduleFrame if this object is not currently producing a frame.
evict(String asset) → void
Called in response to the ext.flutter.evict service extension.
exitApplication(AppExitType exitType, [int exitCode = 0]) Future<AppExitResponse>
Exits the application by calling the native application API method for exiting an application cleanly.
handleAppLifecycleStateChanged(AppLifecycleState state) → void
Called when the application lifecycle state changes.
handleBeginFrame(Duration? rawTimeStamp) → void
Called by the engine to prepare the framework to produce a new frame.
handleDrawFrame() → void
Called by the engine to produce a new frame.
handleEventLoopCallback() bool
Execute the highest-priority task, if it is of a high enough priority.
handleMemoryPressure() → void
Called when the operating system notifies the application of a memory pressure situation.
handleRequestAppExit() Future<AppExitResponse>
Handles any requests for application exit that may be received on the SystemChannels.platform method channel.
handleSystemMessage(Object systemMessage) Future<void>
Handler called for messages received on the SystemChannels.system message channel.
initializationComplete() Future<void>
Alert the engine that the binding is registered. This instructs the engine to register its top level window handler on Windows. This signals that the app is able to process "System.requestAppExit" signals from the engine.
initInstances() → void
The initialization method. Subclasses override this method to hook into the platform and otherwise configure their services. Subclasses must call "super.initInstances()".
initLicenses() → void
Adds relevant licenses to the LicenseRegistry.
initServiceExtensions() → void
Called when the binding is initialized, to register service extensions.
lockEvents(Future<void> callback()) Future<void>
Locks the dispatching of asynchronous events and callbacks until the callback's future completes.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
performReassemble() Future<void>
This method is called by reassembleApplication to actually cause the application to reassemble, e.g. after a hot reload.
postEvent(String eventKind, Map<String, dynamic> eventData) → void
All events dispatched by a BindingBase use this method instead of calling developer.postEvent directly so that tests for BindingBase can track which events were dispatched by overriding this method.
readInitialLifecycleStateFromNativeWindow() → void
Initializes the lifecycleState with the dart:ui.PlatformDispatcher.initialLifecycleState.
reassembleApplication() Future<void>
Cause the entire application to redraw, e.g. after a hot reload.
registerBoolServiceExtension({required String name, required AsyncValueGetter<bool> getter, required AsyncValueSetter<bool> setter}) → void
Registers a service extension method with the given name (full name ""), which takes a single argument "enabled" which can have the value "true" or the value "false" or can be omitted to read the current value. (Any value other than "true" is considered equivalent to "false". Other arguments are ignored.)
registerNumericServiceExtension({required String name, required AsyncValueGetter<double> getter, required AsyncValueSetter<double> setter}) → void
Registers a service extension method with the given name (full name ""), which takes a single argument with the same name as the method which, if present, must have a value that can be parsed by double.parse, and can be omitted to read the current value. (Other arguments are ignored.)
registerServiceExtension({required String name, required ServiceExtensionCallback callback}) → void
Registers a service extension method with the given name (full name "").
registerSignalServiceExtension({required String name, required AsyncCallback callback}) → void
Registers a service extension method with the given name (full name ""), which takes no arguments and returns no value.
registerStringServiceExtension({required String name, required AsyncValueGetter<String> getter, required AsyncValueSetter<String> setter}) → void
Registers a service extension method with the given name (full name ""), which optionally takes a single argument with the name "value". If the argument is omitted, the value is to be read, otherwise it is to be set. Returns the current value.
removeTimingsCallback(TimingsCallback callback) → void
Removes a callback that was earlier added by addTimingsCallback.
requestPerformanceMode(DartPerformanceMode mode) PerformanceModeRequestHandle?
Request a specific DartPerformanceMode.
resetEpoch() → void
Prepares the scheduler for a non-monotonic change to how time stamps are calculated.
resetInternalState() → void
Allows the test framework to reset the lifecycle state and framesEnabled back to their initial values.
scheduleForcedFrame() → void
Schedules a new frame by calling dart:ui.PlatformDispatcher.scheduleFrame.
scheduleFrame() → void
If necessary, schedules a new frame by calling dart:ui.PlatformDispatcher.scheduleFrame.
scheduleFrameCallback(FrameCallback callback, {bool rescheduling = false}) int
Schedules the given transient frame callback.
scheduleTask<T>(TaskCallback<T> task, Priority priority, {String? debugLabel, Flow? flow}) Future<T>
Schedules the given task with the given priority.
scheduleWarmUpFrame() → void
Schedule a frame to run as soon as possible, rather than waiting for the engine to request a frame in response to a system "Vsync" signal.
setSystemUiChangeCallback(SystemUiChangeCallback? callback) → void
Sets the callback for the SystemChrome.systemUIChange method call received on the SystemChannels.platform channel.
toString() String
A string representation of this object.
unlocked() → void
Called by lockEvents when events get unlocked.


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

Static Properties

instance ServicesBinding
The current ServicesBinding, if one has been created.
no setter
rootIsolateToken RootIsolateToken?
A token that represents the root isolate, used for coordinating with background isolates.
no setter