应用状态(AppState)
非官方测试版翻译
本页面由 PageTurner AI 翻译(测试版)。未经项目官方认可。 发现错误? 报告问题 →
AppState 可以检测应用当前处于前台还是后台运行状态,并在状态变更时发出通知。
在处理推送通知时,常用 AppState 来判断操作意图和确定正确的行为逻辑。
应用状态类型
-
active- 应用正在前台运行 -
background- 应用在后台运行,此时用户可能处于:- 使用其他应用
- 处于主屏幕
- [Android] 位于其他
Activity(即使由当前应用启动)
-
[iOS]
inactive- 过渡状态,发生在前后台切换期间或系统无操作时段,例如进入多任务视图、打开通知中心或来电时
更多信息详见 Apple 官方文档
基础用法
要查看当前状态,可以访问 AppState.currentState 属性,该属性会保持最新值。
信息
若使用旧版架构,启动时 currentState 会为 null,直到从原生端异步获取到状态值。
此示例始终显示"Current state is: active",因为应用仅在 active 状态时对用户可见。若需测试代码,建议使用真机而非内置预览。
参考
事件处理
change
当应用状态变更时触发此事件,监听函数会接收到当前应用状态值之一。
memoryWarning iOS
当应用收到操作系统发出的内存警告时触发。
focus Android
当应用获得焦点(用户正在交互)时触发。
blur Android
当用户停止主动交互时触发,适用于用户下拉通知抽屉等场景。此时 AppState 状态不变,但会触发 blur 事件。
方法
addEventListener()
tsx
static addEventListener(
type: AppStateEvent,
listener: (state: AppStateStatus) => void,
): NativeEventSubscription;
注册指定事件类型的监听函数。eventType 有效值参见上文事件列表,返回值为 EventSubscription 对象。
属性
currentState
tsx
static currentState: AppStateStatus;