Flutter iOS Embedder
app_lifecycle_state.h
Go to the documentation of this file.
1 // Copyright 2013 The Flutter Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #ifndef FLUTTER_SHELL_PLATFORM_COMMON_APP_LIFECYCLE_STATE_H_
6 #define FLUTTER_SHELL_PLATFORM_COMMON_APP_LIFECYCLE_STATE_H_
7 
8 namespace flutter {
9 
10 /**
11  * These constants describe the possible lifecycle states of the application.
12  * They must be kept up to date with changes in the framework's
13  * AppLifecycleState enum. They are passed to the embedder's |SetLifecycleState|
14  * function.
15  *
16  * States not supported on a platform will be synthesized by the framework when
17  * transitioning between states which are supported, so that all implementations
18  * share the same state machine.
19  *
20  * Here is the state machine:
21  *
22  * +-----------+ +-----------+
23  * | detached |------------------------------>| resumed |
24  * +-----------+ +-----------+
25  * ^ ^
26  * | |
27  * | v
28  * +-----------+ +--------------+ +-----------+
29  * | paused |<------>| hidden |<----->| inactive |
30  * +-----------+ +--------------+ +-----------+
31  */
32 enum class AppLifecycleState {
33  /**
34  * Corresponds to the Framework's AppLifecycleState.detached: The initial
35  * state of the state machine. On Android, iOS, and web, also the final state
36  * of the state machine when all views are detached. Other platforms do not
37  * re-enter this state after initially leaving it.
38  */
39  kDetached,
40 
41  /**
42  * Corresponds to the Framework's AppLifecycleState.resumed: The nominal
43  * "running" state of the application. The application is visible, has input
44  * focus, and is running.
45  */
46  kResumed,
47 
48  /**
49  * Corresponds to the Framework's AppLifecycleState.inactive: At least one
50  * view of the application is visible, but none have input focus. The
51  * application is otherwise running normally.
52  */
53  kInactive,
54 
55  /**
56  * Corresponds to the Framework's AppLifecycleState.hidden: All views of an
57  * application are hidden, either because the application is being stopped (on
58  * iOS and Android), or because it is being minimized or on a desktop that is
59  * no longer visible (on desktop), or on a tab that is no longer visible (on
60  * web).
61  */
62  kHidden,
63 
64  /**
65  * Corresponds to the Framework's AppLifecycleState.paused: The application is
66  * not running, and can be detached or started again at any time. This state
67  * is typically only entered into on iOS and Android.
68  */
69  kPaused,
70 };
71 
72 constexpr const char* AppLifecycleStateToString(AppLifecycleState state) {
73  switch (state) {
75  return "AppLifecycleState.detached";
77  return "AppLifecycleState.resumed";
79  return "AppLifecycleState.inactive";
81  return "AppLifecycleState.hidden";
83  return "AppLifecycleState.paused";
84  }
85 }
86 
87 } // namespace flutter
88 
89 #endif // FLUTTER_SHELL_PLATFORM_COMMON_APP_LIFECYCLE_STATE_H_
flutter::AppLifecycleState::kHidden
@ kHidden
flutter::AppLifecycleState::kInactive
@ kInactive
flutter
Definition: accessibility_bridge.h:28
flutter::AppLifecycleState::kResumed
@ kResumed
flutter::AppLifecycleState::kDetached
@ kDetached
flutter::AppLifecycleState
AppLifecycleState
Definition: app_lifecycle_state.h:32
flutter::AppLifecycleStateToString
constexpr const char * AppLifecycleStateToString(AppLifecycleState state)
Definition: app_lifecycle_state.h:72
flutter::AppLifecycleState::kPaused
@ kPaused