Mention that the widget tree is not disposed on exit (#131637)

This commit is contained in:
Ian Hickson 2023-08-02 14:14:59 -07:00 committed by GitHub
parent f019789565
commit 47b188ec22
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 28 additions and 0 deletions

View File

@ -1152,6 +1152,20 @@ mixin WidgetsBinding on BindingBase, ServicesBinding, SchedulerBinding, GestureB
///
/// Initializes the binding using [WidgetsFlutterBinding] if necessary.
///
/// ## Application shutdown
///
/// This widget tree is not torn down when the application shuts down, because
/// there is no way to predict when that will happen. For example, a user could
/// physically remove power from their device, or the application could crash
/// unexpectedly, or the malware on the device could forcibly terminate the
/// process.
///
/// Applications are responsible for ensuring that they are well-behaved
/// even in the face of a rapid unscheduled termination.
///
/// To artificially cause the entire widget tree to be disposed, consider
/// calling [runApp] with a widget such as [SizedBox.shrink].
///
/// See also:
///
/// * [WidgetsBinding.attachRootWidget], which creates the root widget for the

View File

@ -1238,6 +1238,20 @@ abstract class State<T extends StatefulWidget> with Diagnosticable {
/// Implementations of this method should end with a call to the inherited
/// method, as in `super.dispose()`.
///
/// ## Application shutdown
///
/// This method is _not_ invoked when the application shuts down, because
/// there is no way to predict when that will happen. For example, a user's
/// battery could catch fire, or the user could drop the device into a
/// swimming pool, or the operating system could unilaterally terminate the
/// application process due to memory pressure.
///
/// Applications are responsible for ensuring that they are well-behaved
/// even in the face of a rapid unscheduled termination.
///
/// To artificially cause the entire widget tree to be disposed, consider
/// calling [runApp] with a widget such as [SizedBox.shrink].
///
/// See also:
///
/// * [deactivate], which is called prior to [dispose].