AppState
AppState 可以告诉你应用程序是在前台还是后台运行,并在状态发生变化时通知你。
AppState 常用于确定在处理推送通知时的意图和正确行为。
应用状态
active- 应用程序正在前台运行background- 应用程序正在后台运行。用户此时可能:- 在另一个应用中
- 在主屏幕上
- [Android] 在另一个
Activity中(即使该界面是由你的应用启动的)
- [iOS]
inactive- 这是一个在前台和后台切换期间,以及在进入多任务视图、打开通知中心或来电等不活跃期间出现的状态。
更多信息请参见 Apple 官方文档
基本用法
要查看当前状态,可以检查 AppState.currentState,该值会保持更新。不过,currentState 在启动时会是 null,因为 AppState 需要通过桥接来获取它。
该示例通常只会显示“当前状态是: active”,因为应用只有在 active 状态时才对用户可见,且 null 状态只会出现短暂瞬间。如果你想尝试代码,建议使用你自己的设备,而非嵌入式预览。
参考
事件
change
当应用状态发生变化时触发该事件。监听器会接收到当前应用状态值之一。
memoryWarning iOS
当应用收到操作系统的内存警告时触发。
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;