SchedulerBinding mixin
Scheduler for running the following:
-
Transient callbacks, triggered by the system's Window.onBeginFrame callback, for synchronizing the application's behavior to the system's display. For example, Tickers and AnimationControllers trigger from these.
-
Persistent callbacks, triggered by the system's Window.onDrawFrame callback, for updating the system's display after transient callbacks have executed. For example, the rendering layer uses this to drive its rendering pipeline.
-
Post-frame callbacks, which are run after persistent callbacks, just before returning from the Window.onDrawFrame callback.
-
Non-rendering tasks, to be run between frames. These are given a priority and are executed in priority order according to a schedulingStrategy.
- Superclass Constraints
- Implemented by
Constructors
Properties
- currentFrameTimeStamp → Duration
-
The time stamp for the frame currently being processed. [...]
read-only
-
endOfFrame
→ Future<
void> -
Returns a Future that completes after the frame completes. [...]
read-only
- framesEnabled → bool
-
Whether frames are currently being scheduled when scheduleFrame is called. [...]
read-only
- hasScheduledFrame → bool
-
Whether this scheduler has requested that handleBeginFrame be called soon.
read-only
- lifecycleState → AppLifecycleState
-
Whether the application is visible, and if so, whether it is currently
interactive. [...]
read-only
- schedulerPhase → SchedulerPhase
-
The phase that the scheduler is currently operating under.
read-only
- schedulingStrategy ↔ SchedulingStrategy
-
The strategy to use when deciding whether to run a task or not. [...]
read / write
- transientCallbackCount → int
-
The current number of transient frame callbacks scheduled. [...]
read-only
- hashCode → int
-
The hash code for this object. [...]
read-only, inherited
- locked → bool
-
Whether lockEvents is currently locking events. [...]
@protected, read-only, inherited
- runtimeType → Type
-
A representation of the runtime type of the object.
read-only, inherited
Methods
-
addPersistentFrameCallback(
FrameCallback callback) → void - Adds a persistent frame callback. [...]
-
addPostFrameCallback(
FrameCallback callback) → void - Schedule a callback for the end of this frame. [...]
-
cancelFrameCallbackWithId(
int id) → void -
Cancels the transient frame callback with the given
id
. [...] -
debugAssertNoTransientCallbacks(
String reason) → bool - Asserts that there are no registered transient callbacks; if there are, prints their locations and throws an exception. [...]
-
ensureVisualUpdate(
) → void - Schedules a new frame using scheduleFrame if this object is not currently producing a frame. [...]
-
handleAppLifecycleStateChanged(
AppLifecycleState state) → void -
Called when the application lifecycle state changes. [...]
@mustCallSuper, @protected
-
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. [...]
@visibleForTesting
-
initInstances(
) → void -
The initialization method. Subclasses override this method to hook into
the platform and otherwise configure their services. Subclasses must call
"super.initInstances()". [...]
override
-
initServiceExtensions(
) → void -
Called when the binding is initialized, to register service
extensions. [...]
override
-
resetEpoch(
) → void - Prepares the scheduler for a non-monotonic change to how time stamps are calculated. [...]
-
scheduleForcedFrame(
) → void - Schedules a new frame by calling Window.scheduleFrame. [...]
-
scheduleFrame(
) → void - If necessary, schedules a new frame by calling Window.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 givenpriority
and returns a Future that completes to thetask
's eventual return value. [...] -
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. [...]
-
unlocked(
) → void -
Called by lockEvents when events get unlocked. [...]
override
-
evict(
String asset) → void -
Called in response to the
ext.flutter.evict
service extension. [...]@mustCallSuper, @protected, inherited -
initLicenses(
) → void -
Adds relevant licenses to the LicenseRegistry. [...]
@mustCallSuper, @protected, inherited
-
lockEvents(
Future< void> callback()) → Future< void> -
Locks the dispatching of asynchronous events and callbacks until the
callback's future completes. [...]
@protected, inherited
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a non-existent method or property is accessed. [...]
inherited
-
performReassemble(
) → Future< void> -
This method is called by reassembleApplication to actually cause the
application to reassemble, e.g. after a hot reload. [...]
@mustCallSuper, @protected, inherited
-
reassembleApplication(
) → Future< void> -
Cause the entire application to redraw, e.g. after a hot reload. [...]
inherited
-
registerBoolServiceExtension(
{String name, AsyncValueGetter< bool> getter, AsyncValueSetter< bool> setter }) → void -
Registers a service extension method with the given name (full
name "ext.flutter.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.) [...]
@protected, inherited
-
registerNumericServiceExtension(
{String name, AsyncValueGetter< double> getter, AsyncValueSetter< double> setter }) → void -
Registers a service extension method with the given name (full
name "ext.flutter.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.) [...]
@protected, inherited
-
registerServiceExtension(
{String name, ServiceExtensionCallback callback }) → void -
Registers a service extension method with the given name (full name
"ext.flutter.name"). [...]
@protected, inherited
-
registerSignalServiceExtension(
{String name, AsyncCallback callback }) → void -
Registers a service extension method with the given name (full
name "ext.flutter.name"), which takes no arguments and returns
no value. [...]
@protected, inherited
-
registerStringServiceExtension(
{String name, AsyncValueGetter< String> getter, AsyncValueSetter< String> setter }) → void -
Registers a service extension method with the given name (full name
"ext.flutter.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. [...]
@protected, inherited
-
toString(
) → String -
Returns a string representation of this object.
inherited
Operators
-
operator ==(
dynamic other) → bool -
The equality operator. [...]
inherited
Static Properties
- instance → SchedulerBinding
-
The current SchedulerBinding, if one has been created.
read-only
Static Methods
-
debugPrintTransientCallbackRegistrationStack(
) → void - Prints the stack for where the current transient callback was registered. [...]