应用状态(AppState)
非官方测试版翻译
本页面由 PageTurner AI 翻译(测试版)。未经项目官方认可。 发现错误? 报告问题 →
AppState 可以检测应用当前处于前台还是后台运行状态,并在状态变更时发出通知。
在处理推送通知时,常用 AppState 来判断操作意图和确定正确的行为逻辑。
应用状态类型
-
active- 应用正在前台运行 -
background- 应用在后台运行,此时用户可能处于:- 使用其他应用
- 处于主屏幕
- [Android] 位于其他
Activity(即使由当前应用启动)
-
[iOS]
inactive- 过渡状态,发生在前后台切换期间或系统无操作时段,例如进入多任务视图、打开通知中心或来电时
更多信息详见 Apple 官方文档
基础用法
通过访问 AppState.currentState 可获取当前状态(该值会实时更新)。但在启动时,由于 AppState 需要从桥接中获取状态,currentState 将暂时为 null。
由于应用仅在 active 状态对用户可见,且 null 状态转瞬即逝,本示例始终显示"Current state is: 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;