跳至主内容
版本:0.80

应用状态(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;