AppState
AppState 可以告诉你应用是处于前台还是后台,并在状态改变时通知你。
AppState 经常用于在处理推送通知时确定意图和适当的行为。
应用状态
active- 应用在前台运行。background- 应用在后台运行。用户可能正在:- 使用其他应用
- 在主屏幕上
- [Android] 在另一个
Activity上(即使它是由你的应用启动的)
- [iOS]
inactive- 这种状态发生在应用在前台和后台之间切换时,以及在非活跃期间,例如进入多任务视图、打开通知中心或有来电时。
更多信息,请参阅 Apple 的文档
基本用法
要查看当前状态,你可以检查 AppState.currentState,它会保持最新。然而,在启动时 currentState 将为 null,因为 AppState 正在通过桥接获取它。
这个例子只会显示“当前状态是:active”,因为应用只有在 active 状态时才对用户可见,而 null 状态只会短暂发生。如果你想尝试这段代码,我们建议使用你自己的设备而不是嵌入式预览。
参考
事件
change
当应用状态改变时会收到此事件。监听器会以 当前应用状态值之一 调用。
memoryWarning
此事件用于在需要抛出内存警告或释放内存时。
focus Android
当应用获得焦点时(用户正在与应用交互)收到。
blur Android
当用户没有积极与应用交互时收到。在用户拉下通知抽屉的情况下很有用。AppState 不会改变,但会触发 blur 事件。
方法
addEventListener()
tsx
static addEventListener(
type: AppStateEvent,
listener: (state: AppStateStatus) => void,
): NativeEventSubscription;
设置一个函数,当 AppState 上发生指定的事件类型时,该函数将被调用。eventType 的有效值在上面列出。返回 EventSubscription。
属性
currentState
tsx
static currentState: AppStateStatus;