• Chris Bracken's avatar
    Support inactive, suspending AppLifecycleStates (#10306) · 9452a344
    Chris Bracken authored
    * Rolls the engine to 75c74dc463d56e17be10315cfde409010fd8f90b.
    * Adds framework support for the `AppLifecycleState.inactive` and `AppLifecycleState.suspending` states.
    
    What are the new states?
    ------------------------
    * `AppLifecycleState.inactive` is emitted on iOS only and corresponds to iOS's foreground inactive state. Current iOS state transitions are:
    `resumed` <--> `inactive` <--> `paused`
    
    * `AppLifecycleState.suspending` is currently emitted on Android only and corresponds to the
    transition to Android's stopped state. Current Android state transitions are:
    `resumed` <--> `paused` --> `suspending` --> `resumed`
    
    These transitions may change in future.
    
    This is a breaking change on iOS
    --------------------------------
    
    This changes the semantics of the `AppLifecycleState.paused` state on
    iOS. The behaviour associated with this state is unchanged on Android.
    
    For background on iOS application states see the state transition
    diagram in the [App Programming Guide for iOS](https://developer.apple.com/library/content/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/TheAppLifeCycle/TheAppLifeCycle.html#//apple_ref/doc/uid/TP40007072-CH2-SW6).
    
    On iOS, prior to this change, `AppLifecycleState.paused` corresponded to
    a transition to the _foreground inactive_ state. It now corresponds to a
    transition to the _background state_. The newly-added
    `AppLifecycleState.inactive` state now corresponds to entering the
    _foreground inactive_ state, which (currently) has no exact analogue on
    Android.
    
    Briefly, the _foreground inactive_ state is the state entered when
    switching from an app to the app switcher, receiving a phone call, or
    responding to a TouchID request. Apps are permitted to continue
    animating/updating views in this state if desired. From the _foreground
    inactive_ state, the app may transition back to _active_ (e.g., entering
    the app switcher then resuming the app), or to the _background_ state
    (e.g., switching to the home screen or another app).
    
    What to change
    --------------
    If your app does not handle the `AppLifecycleState.paused` state in a
    `WidgetsBindingObserver.didChangeAppLifecycleState` implementation, no
    changes are required.
    
    If you do handle `AppLifecycleState.paused`, you may additionally wish
    to also handle `AppLifecycleState.inactive`. For example, games should
    probably pause on entering the app switcher rather than wait to be
    backgrounded.
    
    More details
    ------------
    For background on Android application states see the state transition
    diagram in the [Android Activity Lifecycle docs](https://developer.android.com/guide/components/activities/activity-lifecycle.html#alc).
    9452a344
Name
Last commit
Last update
..
src Loading commit data...
analysis_options_user.yaml Loading commit data...
animation.dart Loading commit data...
cupertino.dart Loading commit data...
foundation.dart Loading commit data...
gestures.dart Loading commit data...
material.dart Loading commit data...
painting.dart Loading commit data...
physics.dart Loading commit data...
rendering.dart Loading commit data...
scheduler.dart Loading commit data...
services.dart Loading commit data...
widgets.dart Loading commit data...