Skip to main content

AppLifecycleState

Enum AppLifecycleState 

Source
pub enum AppLifecycleState {
    Detached,
    Resumed,
    Inactive,
    Hidden,
    Paused,
}
Expand description

States that an application can be in once it is running.

States not supported on a platform are synthesized so the state machine stays the same everywhere. For example, Hidden is synthesized on mobile before Paused when coming from Inactive, and before Inactive when coming from Paused.

The values below are listed in the expected state machine transition order. The initial state is Detached.

Flutter counterpart: AppLifecycleState (dart:ui platform_dispatcher.dart).

Variants§

§

Detached

The application is still hosted by a Flutter engine but is detached from any host views.

The application defaults to this state before it initializes, and can be in this state (applicable on Android, iOS, and web) after all views have been detached.

When the application is in this state, the engine is running without a view.

This state is only entered on iOS, Android, and web, although on all platforms it is the default state before the application begins running.

§

Resumed

On all platforms, this state indicates that the application is in the default running mode for a running application that has input focus and is visible.

On Android, this state corresponds to the Flutter host view having focus while in Android’s “resumed” state. It is possible for the Flutter app to be in the Inactive state while still being in Android’s “onResume” state if the app has lost focus but hasn’t had Activity.onPause called on it.

On iOS and macOS, this corresponds to the app running in the foreground active state.

§

Inactive

At least one view of the application is visible, but none have input focus. The application is otherwise running normally.

On non-web desktop platforms, this corresponds to an application that is not in the foreground, but still has visible windows.

On the web, this corresponds to an application that is running in a window or tab that does not have input focus.

On iOS and macOS, this state corresponds to the Flutter host view running in the foreground inactive state. Apps transition to this state when in a phone call, when responding to a TouchID request, when entering the app switcher or the control center, or when the UIViewController hosting the Flutter app is transitioning.

On Android, this corresponds to the Flutter host view running in Android’s paused state (i.e. Activity.onPause has been called), or in Android’s “resumed” state (i.e. Activity.onResume has been called) but does not have window focus.

On Android and iOS, apps in this state should assume that they may be Hidden and Paused at any time.

§

Hidden

All views of an application are hidden, either because the application is about to be paused (on iOS and Android), or because it has been minimized or placed on a desktop that is no longer visible (on non-web desktop), or is running in a window or tab that is no longer visible (on the web).

On iOS and Android, in order to keep the state machine the same on all platforms, a transition to this state is synthesized before the Paused state is entered when coming from Inactive, and before the Inactive state is entered when coming from Paused. This allows cross-platform implementations that want to know when an app is conceptually “hidden” to only write one handler.

§

Paused

The application is not currently visible to the user, and not responding to user input.

When the application is in this state, the engine will not call PlatformDispatcher.onBeginFrame and PlatformDispatcher.onDrawFrame.

This state is only entered on iOS and Android.

Trait Implementations§

Source§

impl Clone for AppLifecycleState

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for AppLifecycleState

Source§

impl Debug for AppLifecycleState

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Eq for AppLifecycleState

Source§

impl Hash for AppLifecycleState

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for AppLifecycleState

Source§

fn eq(&self, other: &Self) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for AppLifecycleState

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> Downcast<T> for T

Source§

fn downcast(&self) -> &T

Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> Upcast<T> for T

Source§

fn upcast(&self) -> Option<&T>

Source§

impl<T> WasmNotSend for T
where T: Send,

Source§

impl<T> WasmNotSendSync for T

Source§

impl<T> WasmNotSync for T
where T: Sync,